KR20210090249A - 이미지 처리 방법, 장치, 차량 탑재 연산 플랫폼, 전자 디바이스 및 시스템 - Google Patents

이미지 처리 방법, 장치, 차량 탑재 연산 플랫폼, 전자 디바이스 및 시스템 Download PDF

Info

Publication number
KR20210090249A
KR20210090249A KR1020217018149A KR20217018149A KR20210090249A KR 20210090249 A KR20210090249 A KR 20210090249A KR 1020217018149 A KR1020217018149 A KR 1020217018149A KR 20217018149 A KR20217018149 A KR 20217018149A KR 20210090249 A KR20210090249 A KR 20210090249A
Authority
KR
South Korea
Prior art keywords
fixed
point
parameter
processing
convolutional neural
Prior art date
Application number
KR1020217018149A
Other languages
English (en)
Inventor
광리앙 쳉
투오푸 웬
지안핑 시
Original Assignee
베이징 센스타임 테크놀로지 디벨롭먼트 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 베이징 센스타임 테크놀로지 디벨롭먼트 컴퍼니 리미티드 filed Critical 베이징 센스타임 테크놀로지 디벨롭먼트 컴퍼니 리미티드
Publication of KR20210090249A publication Critical patent/KR20210090249A/ko

Links

Images

Classifications

    • G06K9/6218
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0454
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Analysis (AREA)
  • Complex Calculations (AREA)

Abstract

이미지 처리 방법, 장치, 차량 탑재 연산 플랫폼, 전자 디바이스 및 시스템에 관한 것으로서, 상기 방법은 연산유닛의 고정 소수점 비트폭 하드웨어 리소스량에 따라 컨볼루션 신경망에서 부동 소수점을 사용하여 표시된 네트워크 파라미터에 대해 고정 소수점 처리를 수행하는 단계(S101), 여기서, 상기 네트워크 파라미터는 상기 컨볼루션 신경망의 컨볼루션 파라미터 및 계층 출력 파라미터를 포함하며; 처리할 이미지를 획득하는 단계(S102); 상기 연산유닛이 고정 소수점 처리 후의 상기 컨볼루션 신경망의 네트워크 파라미터에 따라 상기 이미지를 처리하도록 제어하여, 상기 이미지의 처리 결과를 획득하는 단계(S103)를 포함한다.

Description

이미지 처리 방법, 장치, 차량 탑재 연산 플랫폼, 전자 디바이스 및 시스템
본 출원은 2018년 12월 29일 중국 특허국에 제출된, 출원번호가 CN 201811647408.2이고, 출원의 명칭이 "이미지 처리 방법, 장치, 차량 탑재 연산 플랫폼, 전자 디바이스 및 시스템"인 중국 특허 출원의 우선권을 요구하며, 내용 전부를 인용을 통해 본 출원에 결합시켰다.
본 출원은 컴퓨터 기술에 관한 것으로서, 특히 이미지 처리 방법, 장치, 차량 탑재 연산 플랫폼, 전자 디바이스 및 시스템에 관한 것이다.
컨볼루션 신경망은 컴퓨터 비전 태스크와 관련된 분야에서 중요한 역할을 한다. 예를 들어, 지능형 주행 분야에서, 컨볼루션 신경망을 기반으로 차선 검출, 차선 피팅 등을 수행할 수 있다. 컨볼루션 신경망은 하드웨어 리소스가 제한적인 플랫폼에서 실행되기 전, 통상적으로 고정 소수점 조작이 필요하다. 여기서, 고정 소수점 조작이란 부동 소수점 숫자로 표시된 컨볼루션 신경망 중의 컨볼루션 파라미터와 중간 계층의 결과를 고정 소수점으로 변환하여 고정 소수점 숫자로 표시하는 것을 말한다.
본 출원의 실시예는 이미지 처리 방법, 장치, 차량 탑재 연산 플랫폼, 전자 디바이스 및 시스템을 제공한다.
본 출원의 실시예의 일 측면에 따르면, 제공되는 이미지 처리방법은,
연산유닛의 고정 소수점 비트폭 하드웨어 리소스량에 따라 컨볼루션 신경망에서 부동 소수점을 사용하여 표시된 네트워크 파라미터에 대해 고정 소수점 처리를 수행하는 단계, 여기서, 상기 네트워크 파라미터는 상기 컨볼루션 신경망의 컨볼루션 파라미터 및 계층 출력 파라미터를 포함하며;
처리할 이미지를 획득하는 단계;
상기 연산유닛이 고정 소수점 처리 후의 상기 컨볼루션 신경망의 네트워크 파라미터에 따라 상기 이미지를 처리하도록 제어하여, 상기 이미지의 처리 결과를 획득하는 단계를 포함한다.
본 출원의 실시예의 또 다른 측면에 따르면, 제공되는 이미지 처리 장치는,
연산유닛의 고정 소수점 비트폭 하드웨어 리소스량에 따라 컨볼루션 신경망에서 부동 소수점을 사용하여 표시된 네트워크 파라미터에 대해 고정 소수점 처리를 수행하기 위한 제1 처리 모듈, 여기서, 상기 네트워크 파라미터는 상기 컨볼루션 신경망의 컨볼루션 파라미터 및 계층 출력 파라미터를 포함하며;
처리할 이미지를 획득하기 위한 획득 모듈;
상기 연산유닛이 고정 소수점 처리 후의 상기 컨볼루션 신경망의 네트워크 파라미터에 따라 상기 이미지를 처리하도록 제어하여, 상기 이미지의 처리 결과를 획득하기 위한 제2 처리 모듈을 포함한다.
본 출원의 실시예의 또 다른 측면에 따르면, 제공되는 필드 프로그래머블 게이트 어레이(FPGA) 기반의 차량 탑재 연산 플랫폼은, 프로세서, 외부 메모리, 메모리와 FPGA 연산유닛을 포함하고;
상기 외부 메모리에 상기 컨볼루션 신경망의 고정 소수점 처리 후의 네트워크 파라미터가 저장되고, 상기 네트워크 파라미터는 상기 컨볼루션 신경망의 컨볼루션 파라미터 및 계층 출력 파라미터를 포함하며;
상기 프로세서는 상기 컨볼루션 신경망의 고정 소수점 처리된 네트워크 파라미터를 상기 메모리에 독입(讀入)하여, 상기 메모리 상의 데이터와 처리할 이미지 정보를 상기 FPGA 연산유닛에 입력하며;
상기 FPGA 연산유닛은 상기 고정 소수점 처리 후의 컨볼루션 신경망의 네트워크 파라미터에 따라 상기 처리할 이미지에 대해 연산 처리를 수행하여, 상기 이미지의 처리 결과를 획득한다.
본 출원의 실시예의 또 다른 측면에 따르면, 제공되는 전자 디바이스는,
프로세서와 메모리를 포함하며;
상기 메모리는 상기 프로세서가 어느 하나의 실시예의 상기 이미지 처리 방법에 대응되는 조작을 실행하도록 하는 적어도 하나의 실행 가능한 명령을 저장하기 위한 것이다.
본 출원의 실시예의 또 다른 측면에 따르면, 제공되는 전자 디바이스는,
프로세서 및 어느 한 항의 실시예의 상기 이미지 처리 장치를 포함하며; 프로세서가 상기 이미지 처리 장치를 실행 시, 어느 한 항의 실시예의 상기 이미지 처리 장치 중의 모듈이 실행된다.
본 출원의 실시예의 또 다른 측면에 따르면, 제공되는 지능형 주행 시스템은, 상기 어느 한 항의 실시예의 상기 전자 디바이스를 포함한다.
본 출원의 또 다른 측면에 따르면, 제공되는 컴퓨터 가독 저장매체를 제공하며, 상기 컴퓨터 가독 저장매체에 상기 어느 하나의 실시예의 상기 이미지 처리 방법을 실행하기 위한 컴퓨터 프로그램이 저장된다.
본 출원의 실시예가 제공하는 이미지 처리 방법, 장치, 차량 탑재 연산 플랫폼, 전자 디바이스 및 시스템은, 먼저 연산유닛의 고정 소수점 비트폭 하드웨어 리소스량에 따라 컨볼루션 신경망에 대해 고정 소수점 처리를 수행하고, 처리할 이미지를 획득한 후, 연산유닛이 고정 소수점 처리된 후의 컨볼루션 신경망의 네트워크 파라미터에 따라 이미지를 처리하도록 제어함으로써, 하드웨어 리소스가 제한적인 플랫폼 상에서 컨볼루션 신경망을 사용하여 효율적인 이미지 처리를 구현할 수 있다.
이하 도면 및 실시예를 통해, 본 출원의 기술방안을 보다 구체적으로 설명한다.
명세서의 일부분을 구성하는 첨부도면은 본 출원의 실시예를 설명하는 것이며, 또한 설명와 함께 본 발명의 원리를 해석하기 위한 것이다.
도면을 참조하면, 본 출원은 아래의 상세한 설명에 따라, 더욱 명확하게 이해될 수 있을 것이다. 여기서,
도 1은 본 출원의 실시예가 제공하는 이미지 처리 방법의 일 흐름도이다.
도 2는 본 출원의 실시예가 제공하는 이미지 처리 방법의 다른 흐름도이다.
도 3은 본 출원의 실시예가 제공하는 이미지 처리 방법의 또 다른 흐름도이다.
도 4는 본 출원의 실시예가 제공하는 이미지 처리 방법의 다른 흐름도이다.
도 5는 본 출원의 실시예가 제공하는 이미지 처리 방법의 또 다른 흐름도이다.
도 6은 본 출원의 실시예가 제공하는 이미지 처리 방법의 또 다른 흐름도이다.
도 7은 본 출원의 실시예가 제공하는 이미지 처리 방법의 또 다른 흐름도이다.
도 8은 본 출원의 실시예가 제공하는 이미지 처리 장치의 일 구조도이다.
도 9는 본 출원의 실시예가 제공하는 이미지 처리 장치의 또 다른 구조도이다.
도 10은 본 출원의 실시예가 제공하는 이미지 처리 장치의 또 다른 구조도이다.
도 11은 본 출원의 실시예가 제공하는 이미지 처리 장치의 또 다른 구조도이다.
도 12는 본 출원의 실시예가 제공하는 FPGA 기반의 차량 탑재 연산 플랫폼의 구조도이다.
도 13은 본 출원의 실시예가 제공하는 전자 디바이스(1300)의 실체 블록도이다.
첨부 도면을 참조하여 본 출원의 각종 예시적인 실시예에 대해 상세히 설명하고자 한다. 별도의 구체적인 설명이 없는 한, 이러한 실시예에서 기술되는 부재 또는 단계의 상대적인 배치, 숫자 표현식과 수치는 본 출원의 범위를 제한하지 않는다는 점에 유의한다.
이와 동시에, 설명의 편의를 위해, 첨부도면에 도시된 각 부분의 치수는 실제의 비율관계대로 제작되지 않았음을 알아야 한다.
이하 적어도 하나의 예시적 실시예에 대한 기술은 단지 설명적인 것일 뿐이며, 본 출원 및 그의 응용 또는 사용에 대해 어떠한 제한도 되지 않는다.
관련 분야의 보통 기술자가 이미 알고 있는 기술, 방법과 장치에 대해서는 상세히 토론하지 않을 수도 있으나, 단 적합한 경우, 상기 기술, 방법과 장치는 명세서의 일부분으로 간주되어야 한다.
유사한 부호와 알파벳은 아래의 도면에서 유사한 항목을 표시하며, 따라서, 일단 어느 항이 하나의 도면에서 정의되었다면, 이후의 도면에서는 그에 대해 추가적으로 설명할 필요가 없음에 유의한다.
본 출원의 실시예는 컴퓨터 시스템/서버에 응용될 수 있으며, 이는 다양한 다른 범용 또는 전용 컴퓨팅 시스템 환경 또는 구성과 함께 조작될 수 있다. 컴퓨터 시스템/서버와 함께 사용하기에 적합한 다양한 주지의 컴퓨팅 시스템, 환경 및/또는 구성의 예는 개인용 컴퓨터 시스템, 서버 컴퓨터 시스템, 씬 클라이언트, 식 클라이언트, 핸드헬드 또는 랩탑 장치, 마이크로프로세서 기반의 시스템, 셋톱박스, 프로그래머블 소비자 전자제품, 네트워크 개인용 컴퓨터, 소형 컴퓨터 시스템, 대형 컴퓨터 시스템 및 상기 임의의 시스템을 포함하는 분산형 클라우드 컴퓨팅 기술 환경, 등등을 포함하되, 이에 한정되지 않는다.
컴퓨터 시스템/서버는 컴퓨터 시스템에 의해 실행되는 컴퓨터 시스템 실행 가능 명령(예컨대 프로그램 모듈)의 일반 컨텍스트하에 기술될 수 있다. 통상적으로, 프로그램 모듈은, 루틴, 프로그램, 타겟 프로그램, 컴포넌트, 논리, 데이터 구조 등등을 포함할 수 있으며, 이들은 특정한 임무를 실행하거나 또는 특정한 추상적 데이터 유형을 구현한다. 컴퓨터 시스템/서버는 분산형 클라우드 컴퓨팅 환경에서 실시될 수 있으며, 분산형 클라우드 컴퓨팅 환경 중, 임무는 통신 네트워크를 통해 연결되는 원격 처리 장치에 의해 실행되는 것이다. 분산형 클라우드 컴퓨팅 환경에서, 프로그램 모듈은 저장장치를 포함한 로컬 또는 원격 컴퓨팅 시스템 저장 매체에 위치할 수 있다.
본 출원의 실시예가 제공하는 이미지 처리 방법은 컨볼루션 신경망을 사용하여 이미지를 처리하는 각종 장면에 응용될 수 있다. 예시적으로, 본 출원의 실시예는 예컨대 자율주행과 운전자 보조 기술과 같은 지능형 주행 분야에 응용될 수 있다. 지능형 주행 시스템 분야에서 컨볼루션 신경망을 기반으로 차선 검출, 차선 피팅 등을 수행할 수 있으며, 즉 지능형 주행 분야 중의 컨볼루션 신경망에 대하여, 본 출원의 실시예의 상기 방법으로 고정 소수점 처리 조작을 수행할 수 있다.
도 1은 본 출원의 실시예가 제공하는 이미지 처리 방법의 일 흐름도이다. 본 출원의 실시예의 실행 주체는 이미지 처리를 수행하는 전자 디바이스 중의 프로세서 등, 예를 들어 중앙처리장치(Central Processing Unit, 약칭 CPU)일 수 있다. 도 1에 도시된 바와 같이, 이미지 처리 방법은 이하 단계를 포함한다:
S101: 연산유닛의 고정 소수점 비트폭 하드웨어 리소스량에 따라, 컨볼루션 신경망에서 부동 소수점을 사용하여 표시된 네트워크 파라미터에 대해 고정 소수점 처리를 수행하는 단계.
여기서, 상기 네트워크 파라미터는 컨볼루션 신경망의 컨볼루션 파라미터 및 계층 출력 파라미터를 포함한다.
선택적으로, 상기 연산유닛은 고정 소수점 연산을 지원하는 계산유닛일 수 있다. 필드 프로그래머블 게이트 어레이(Field-Programmable Gate Array, 약칭 FPGA)를 예로 들면, 연산유닛은 FPGA 중의 디지털 신호 프로세서(Digital Signal Processor, 약칭 DSP)일 수 있다.
컨볼루션 신경망은 하드웨어의 리소스가 제한적인 플랫폼 상에서 실행되기 전, 고정 소수점 조작이 필요하다. 예시적으로, FPGA는 저렴하고 안정적인 컴퓨팅 플랫폼으로서, 컨볼루션 신경망이 실행될 수 있다. FPGA 등 하드웨어 플랫폼의 낮은 전력 소모, 가속 연산 등 측면의 종합적인 장점을 발휘하기 위하여, 연산유닛의 고정 소수점 비트폭 하드웨어 리소스량은 통상적으로 제한적이다. 어떤 경우, 보다 낮은 전력 소모를 구현하기 위해 종종 최대한 작은 고정 소수점 비트폭의 하드웨어 리소스량을 선택할 수 있는데, 예를 들어 8비트 또는 4비트 심지어 그보다 적은 폭의 하드웨어 리소스량으로 고정 소수점 연산을 구현한다. 그러나, 고정 소수점 비트폭의 하드웨어 리소스량이 적으면 종종 연산 속도에 영향을 미칠 수 있으며, 매우 빠른 응답 심지어 실시간 응답을 요구하는 플랫폼의 경우, 예를 들어 자율 주행 차량에 탑재되는 연산 플랫폼 등의 경우, 본 출원의 실시예는 컨볼루션 신경망을 통해 하드웨어의 고정 소수점 비트폭의 하드웨어 리소스량에 적응하는 측면의 최적화를 수행함으로써, 리소스가 제한적인 플랫폼에서의 가속 연산을 구현해야 한다. 상기 수요를 위해, 컨볼루션 신경망이 FPGA 등 하드웨어 리소스가 제한적인 플랫폼 상에서 실행되기 전, 먼저 고정 소수점 조작을 수행하여, 하드웨어의 고정 소수점 비트폭 리소스량에 적응시킴으로써, 연산 플랫폼의 낮은 전력소모 및 빠른 응답에 대한 요구를 동시에 만족시킨다. 선택적으로, 컨볼루션 신경망의 컨볼루션 파라미터와 중간 계층의 결과를 고정 소수점으로 변환시켜 고정 소수점 숫자로 표시한다. 고정 소수점 조작을 거친 후, 부동 소수점 숫자의 곱셈과 덧셈은 고정 소수점 숫자의 곱셈과 덧셈으로 전환될 수 있다. FPGA 등의 플랫폼의 경우, 고정 소수점 숫자의 곱셈과 덧셈 등 연산은 직접 DSP를 사용하여 실행할 수 있으며, 따라서, 컨볼루션 신경망의 네트워크 파라미터에 대해 고정 소수점 조작을 실시하면, FPGA 등 플랫폼의 하드웨어 소모를 감소시킬 수 있다.
컨볼루션 신경망은 이미지 처리 과정에 응용될 수 있으며, 본 출원의 실시예는 컨볼루션 신경망을 기반으로 하는 이미지 처리 방법을 제시한다. 먼저 연산유닛의 고정 소수점 비트폭의 하드웨어 리소스량에 따라 컨볼루션 신경망에 대해 고정 소수점 처리를 수행하고, 처리할 이미지를 획득한 후, 연산유닛이 고정 소수점 처리된 컨볼루션 신경망의 네트워크 파라미터에 따라 이미지를 처리하도록 제어함으로써, 하드웨어 리소스가 제한적인 플랫폼 상에서 컨볼루션 신경망을 사용하여 효율적인 이미지 처리를 구현한다.
상기 연산유닛에서, 고정 소수점 비트폭 하드웨어 리소스량을 사용하여 데이터 처리를 수행한다. 예시적으로, FPGA의 DSP의 고정 소수점 비트폭 하드웨어 리소스량은 4비트 내지 8비트일 수 있으며, 즉 FPGA의 DSP는 4비트 내지 8비트의 고정 소수점 숫자의 계산을 지원할 수 있다. 이와 상응하게, 고정 소수점 처리를 수행 시, 부동 소수점 숫자를 4비트 내지 8비트의 고정 소수점 숫자로 변환해야 한다.
일 선택적 구현예에서, 상기 단계 S101은 메모리에 저장된 해당 명령을 호출하는 프로세서에 의해 실행될 수도 있고, 프로세서에 의해 실행되는 제1 처리 모듈(801)에 의해 실행될 수도 있다.
S102: 처리할 이미지를 획득하는 단계.
예시적으로, 차선 검출, 차선 피팅 등의 장면에서, 지능형 주행 차량의 카메라를 통해 노면 이미지를 촬영할 수 있고, 프로세서는 카메라가 수집한 노면 이미지를 획득할 수 있으며, 상기 노면 이미지가 즉 처리할 이미지이다.
일 선택적 구현예에서, 상기 단계 S102는 메모리에 저장된 해당 명령을 호출하는 프로세서에 의해 실행될 수도 있고, 프로세서에 의해 실행되는 획득 모듈(802)에 의해 실행될 수도 있다.
S103: 상기 연산유닛이 고정 소수점 처리 후의 컨볼루션 신경망의 네트워크 파라미터에 따라 상기 이미지를 처리하도록 제어하여, 상기 이미지의 처리 결과를 획득하는 단계.
일 선택적 구현예에서, 상기 단계 S103은 메모리에 저장된 해당 명령을 호출하는 프로세서에 의해 실행될 수도 있고, 프로세서에 의해 실행되는 제2 처리 모듈(803)에 의해 실행될 수도 있다.
선택적으로, 상기 이미지를 처리하는 과정은 적어도 고정 소수점 곱셈 연산, 고정 소수점 덧셈 연산, 시프트 연산 중의 하나를 포함할 수 있으나 이에 한정되지 않는다.
각기 다른 장면에 따라, 상이한 이미지 처리 결과를 획득할 수 있다. 획득할 수 있는 이미지의 처리 결과는 적어도,
특징 추출 결과, 분할 결과, 분류 결과, 대상 검출/추적 결과 중의 하나를 포함할 수 있으나 이에 한정되지 않는다.
예시적으로, 상기 대상 검출 결과는 차선에 대한 검출 결과일 수 있다.
본 실시예에서, 먼저 연산유닛의 고정 소수점 비트폭 하드웨어 리소스량에 따라 컨볼루션 신경망에 대해 고정 소수점 처리를 수행하고, 처리할 이미지를 획득한 후, 연산유닛이 고정 소수점 처리를 거친 컨볼루션 신경망의 네트워크 파라미터에 따라 이미지를 처리하도록 제어함으로써, 하드웨어 리소스가 제한적인 플랫폼상에서 컨볼루션 신경망을 사용하여 효율적인 이미지 처리를 구현할 수 있다. 컨볼루션 신경망에 대해 고정 소수점 처리를 수행함으로써, 하드웨어 리소스가 제한적인 플랫폼 상에서 가속 연산을 구현하여, 연산 플랫폼의 낮은 전력 소모 및 빠른 응답에 대한 요구를 동시에 만족시킬 수 있다.
상기 단계 S101에서 고정 소수점 처리를 수행 시, 단계별 접근식 고정 소수점 방식을 사용하거나, 또는 컨볼루션 신경망의 계층 출력 파라미터에 대해 클러스터링(clustering)을 수행하는 혼합 고정 소수점 방식을 사용하거나, 또는 상기 둘을 결합시킨 방식을 사용할 수 있다.
상기 단계별 접근식 고정 소수점 방식에서, 먼저 컨볼루션 신경망의 네트워크 파라미터에 따라 고정 소수점 파라미터를 확정하고, 나아가, 고정 소수점 파라미터, 사전 설정된 고정 소수점 함수 및 고정 소수점 비트폭 하드웨어 리소스량에 따라 네트워크 파라미터에 대해 제1 고정 소수점 처리를 수행하여, 제1 고정 소수점 처리 후의 컨볼루션 신경망을 획득한다.
상기 컨볼루션 신경망의 계층 출력 파라미터에 대해 클러스터링을 수행하는 혼합 고정 소수점 방식에서, 먼저 컨볼루션 신경망 중의 계층 출력 파라미터에 대해 클러스터링을 수행하여 사전 설정 수량의 클러스터링 결과를 획득하고, 나아가 클러스터링 결과 및 컨볼루션 신경망 중의 컨볼루션 파라미터에 따라, 고정 소수점 비트폭의 하드웨어 리소스량에 따라 제2 고정 소수점 처리를 수행하여, 제2 고정 소수점 처리 후의 컨볼루션 신경망을 획득한다.
상기 둘을 결합한 방식에서, 단계별 접근식 고정 소수점 처리를 수행한 다음, 단계별 접근식의 고정 소수점 처리 결과에 대해 상기 혼합 고정 소수점 방식을 수행할 수 있다.
이하 실시예에 대해 각각 설명한다.
도 2는 본 출원의 실시예가 제공하는 이미지 처리 방법의 다른 흐름도로서, 도 2에 도시된 바와 같이, 상기 단계별 접근식 고정 소수점 처리 과정은 이하 단계를 포함한다:
S201: 컨볼루션 신경망 중 부동 소수점을 사용하여 표시된 네트워크 파라미터에 따라 고정 소수점 파라미터를 확정하는 단계.
여기서, 상기 고정 소수점 파라미터는 상기 네트워크 파라미터에 대응되는 고정 소수점 숫자의 소수 자릿수를 식별하기 위한 것이다.
선택적으로, 본 출원의 실시예의 입력은 완전 정밀도(full-precision) 부동 소수점 컨볼루션 신경망이며, 즉 본 출원의 실시예의 방법을 실행하기 전, 컨볼루션 신경망 중의 네트워크 파라미터는 부동 소수점 숫자를 사용하여 표시된다.
선택적으로, 상기 네트워크 파라미터는 컨볼루션 파라미터와 계층 출력 파라미터를 포함할 수 있다. 여기서, 계층 출력 파라미터란 컨볼루션 신경망의 중간 계층의 출력 결과를 의미하며, 예를 들어 중간 계층 특징 맵 등이다.
선택적으로, 상기 고정 소수점 파라미터는 상기 네트워크 파라미터에 대응되는 고정 소수점 숫자의 소수 자릿수를 식별하기 위한 것이다. 일차함수를 사용하여 고정 소수점 처리를 수행하기 전, 컨볼루션 신경망 중의 네트워크 파라미터에 따라 고정 소수점 처리 후의 고정 소수점 숫자의 소수 자릿수를 확정할 수 있다.
S202: 상기 고정 소수점 파라미터, 사전 설정된 고정 소수점 함수 및 상기 고정 소수점 비트폭 하드웨어 리소스량에 따라, 상기 네트워크 파라미터에 대해 제1 고정 소수점 처리를 수행하여, 제1 고정 소수점 처리 후의 컨볼루션 신경망을 획득하는 단계.
여기서, 상기 고정 소수점 함수는 사전 설정 경사율(slope)을 갖는 일차함수이며, 상기 사전 설정 경사율은 0보다 크다.
선택적으로, 상기 고정 소수점 파라미터를 확정한 후, 상기 고정 소수점 파라미터, 고정 소수점 함수 및 연산유닛의 고정 소수점 비트폭 하드웨어 리소스량을 결합하여 제1 고정 소수점 처리를 수행한다.
하기 공식 (1)은 고정 소수점 함수의 일 예시이다.
Figure pct00001
공식(1)
여기서,
Figure pct00002
는 경사율이며,
Figure pct00003
일 때,
Figure pct00004
이며, 고정 소수점 처리를 수행하지 않은 경우에 해당한다.
Figure pct00005
일 때,
Figure pct00006
이며, 완전 고정 소수점에 해당한다. 이때, 고정 소수점 함수는 함수에서는 국소적으로 하나의 점프 형식이다. 본 실시예에서는 단계별 과정을 통해,
Figure pct00007
가 부단히 1.0으로부터 0으로 변환되도록 한다. 설명해두어야 할 점으로, 상기 고정 소수점 함수는 단지 일종의 구현 방식일 뿐이며, 당업자라면 실제 필요에 따라 사전 설정 경사율을 지닌 일차함수를 상기 고정 소수점 함수로 확정할 수 있다.
선택적으로, 실시 과정에서, 본 단계는 단계별로 여러 번 실행될 수 있다. 각 단계에서, 먼저 상기 고정 소수점 함수에 하나의 경사율을 할당하고, 경사율을 기초로 제1 고정 소수점 처리를 수행할 수 있다. 본 단계의 제1 고정 소수점 처리가 완료된 후, 경사율을 수정하고, 상기 수정 후의 경사율을 기초로 새로운 제1 고정 소수점 처리를 수행할 수 있으며, 고정 소수점 함수의 경사율이 계단 함수의 경사율에 가까워질 때까지 순차적으로 반복 실행한다. 예를 들어, 컨볼루션 신경망 훈련 과정에서, 매 번 훈련할 때마다. 하나의 사전 설정 경사율을 사용하여 제1 고정 소수점 처리를 수행하고, 다음 번 훈련 시, 선택적으로 고정 소수점 함수와 목표 계단 함수의 차이가 사전 설정 차이보다 큰 경우에 응답하여 고정 소수점 함수의 경사율을 수정하고; 경사율을 수정한 후의 고정 소수점 함수에 따라 새로운 제1 고정 소수점 처리를 수행한다. 예를 들어, 고정 소수점 함수와 목표 계단 함수의 차이가 사전 설정 차이보다 큰지, 예컨대 경사율의 차이값이 사전 설정 차이값보다 큰지 여부를 판단하여, 예이면, 새로운 경사율을 사용하여 제1 고정 소수점 처리를 계속 수행하며, 고정 소수점 함수의 경사율이 계단 함수의 경사율에 가까워질 때까지 순차적으로 반복 실행한다.
예시적으로, 계단 함수를 경사율이 0인 일차함수로 가정하면, 즉 실시 과정에서, 초기 단계는 고정 소수점 함수에 경사율 1을 할당할 수 있으며, 상기 고정 소수점 함수를 기초로 상기 네트워크 파라미터에 대해 고정 소수점 처리를 수행할 수 있다. 순차적으로 반복 실행하여, 후속되는 단계에서 경사율이 점차 감소하고, 경사율이 0에 가까워질 때까지 각 단계에서 할당된 경사율에 따라 고정 소수점 처리를 수행한다.
컨볼루션 신경망의 훈련과정에서 고정 소수점 처리를 실행하는 예를 들면, 훈련 과정에서 고정 소수점을 수행하는 과정은,
초기 단계에서 고정 소수점 함수에 하나의 초기 경사율을 할당한 다음, 상기 고정 소수점 함수를 바탕으로 네트워크 파라미터에 대해 고정 소수점 처리를 수행하고, 나아가, 고정 소수점 처리 후의 고정 소수점 네트워크 파라미터를 기초로 컨볼루션 신경망을 훈련시키며, 훈련 결과가 예상과 부합되면, 현재 획득된 컨볼루션 신경망을 기초로, 제2 단계의 경사율 할당, 고정 소수점 처리 및 신경망 훈련을 실행하여, 경사율이 0에 가까워질 때까지 순차적으로 반복 실행하는 단계를 포함한다. 상기 과정을 통해, 고정 소수점 함수의 결과가 단계별로 점차 완전 고정 소수점에 가까워지는 결과를 나타낼 수 있다.
본 실시예에서, 특정 경사율을 지닌 고정 소수점 함수를 사용하여 컨볼루션 신경망의 컨볼루션 파라미터와 계층 출력 파라미터에 대해 고정 소수점 처리를 수행함으로써, 고정 소수점 처리 결과가 점차 완전 고정 소수점에 가까워지는 결과가 될 수 있도록 하며, 이에 따라 고정 소수점 처리 시의 정밀도 손실을 줄여, 고정 소수점 처리 오차가 감소되고, 고정 소수점 처리의 정확도가 향상된다.
이하 컨볼루션 신경망의 계층 출력 파라미터에 대해 클러스터링을 수행하는 혼합 고정 소수점 처리 방식에 대해 설명하며, 상기 2가지 방식을 결합하는 과정을 설명한다.
도 3은 본 출원의 실시예가 제공하는 이미지 처리 방법의 또 다른 흐름도로서, 도 3에 도시된 바와 같이, 상기 컨볼루션 신경망의 계층 출력 파라미터에 대해 클러스터링을 수행하는 혼합 고정 소수점 처리 방식은 이하 단계를 포함한다:
S301: 컨볼루션 신경망 중 부동 소수점을 사용하여 표시된 계층 출력 파라미터에 대해 클러스터링을 수행하여, 사전 설정 수량의 클러스터링 결과를 획득하는 단계.
상기 두 가지 방식이 결합된 방식을 사용할 경우, 즉 본 단계에서 상기 컨볼루션 신경망이란 상기 제1 고정 소수점 처리 이후의 컨볼루션 신경망을 의미한다.
본 실시예는 컨볼루션 신경망이 제1 고정 소수점 처리 후의 컨볼루션 신경망인 것을 예로 들어 설명한다.
선택적으로 K 평균 클러스터링(Kmeans) 방식을 사용하여 상기 계층 출력 파라미터에 대해 클러스터링을 수행할 수 있다.
선택적으로 상기 제1 고정 소수점 처리를 거친 후, 획득된 상기 계층 출력 파라미터에 대응되는 소수 자릿수는 상기 고정 소수점 파라미터에 의해 식별된 소수 자릿수이다. 이를 기초로, 이러한 계층 출력 파라미터에 대해 클러스터링을 수행한다.
예시적으로, 상기 계층 출력 파라미터가 k + 2 비트의 고정 소수점 숫자라고 가정하면, Kmeans 방식을 사용하여 상기 계층 출력 파라미터에 대해 k 비트의 클러스터링을 수행하며, 여기서 k는 0보다 큰 정수이다.
S302: 상기 클러스터링 결과, 상기 컨볼루션 네트워크 중 부동 소수점을 사용하여 표시된 컨볼루션 파라미터 및 고정 소수점 비트폭 하드웨어 리소스량에 따라, 제2 고정 소수점 처리를 수행하여, 제2 고정 소수점 처리 후의 컨볼루션 신경망을 획득하는 단계.
상기 두 가지 방식이 결합된 방식을 사용할 경우, 즉 본 단계 중 상기 컨볼루션 신경망이란 상기 제1 고정 소수점 처리 이후의 컨볼루션 신경망을 의미한다.
선택적으로, 상기 제2 고정 소수점 처리는 계단 함수를 사용한 고정 소수점 처리일 수 있다.
본 실시예에서, 컨볼루션 신경망의 계층 출력 파라미터에 대해 클러스터링을 수행하고, 클러스터링 결과에 대해 제2 고정 소수점 처리를 수행하여, 고정 소수점 처리의 정밀도를 보장할 수 있도록 하는 전제하에, 고정 소수점의 비트폭을 줄일 수 있어, 대역폭의 점용이 감소된다. 예시적으로, 본 출원의 실시예와 관련된 컨볼루션 신경망이 FPGA에 응용되는 경우, 계층 출력 파라미터에 대해 클러스터링을 표시한 후, 계층 출력 파라미터는 비교적 낮은 비트 숫자로 표시할 수 있으며, 이에 따라 하나의 대응되는 첨자가 생성될 수 있다. 예를 들어 K 평균 클러스터링으로 16개의 클러스터링 수를 획득하였다면, 즉 각 계층 출력 파라미터는 4비트를 사용하여 표시할 수 있다. 나아가, FPGA는 데이터를 독취 시, 4비트만 독취하면 되며, 즉 클러스터링 전보다 훨씬 적은 비트수만 필요하며, 따라서 테이블 검색 방식을 통해 실제 데이터를 획득함으로써 FPGA의 대역폭을 줄일 수 있다.
상기 실시예를 기초로, 본 실시예는 컨볼루션 신경망의 네트워크 파라미터에 따라 고정 소수점 파라미터를 확정하는 과정에 관한 것이다.
선택적으로, 상기 단계 S201은
상기 컨볼루션 파라미터의 소수 자릿수 및 상기 계층 출력 파라미터의 소수 자릿수에 따라, 상기 고정 소수점 파라미터를 확정하는 단계를 포함한다.
선택적으로, 본 출원의 실시예의 방법을 실행하기 전, 상기 컨볼루션 신경망 중의 컨볼루션 파라미터와 계층 출력 파라미터는 각각 부동 소수점 숫자이며, 이러한 부동 소수점 숫자에 대해, 본 실시예에서 이러한 부동 소수점 숫자에 대응되는 소수 자릿수에 따라, 상기 고정 소수점 파라미터를 확정할 수 있다.
일종의 선택 가능한 실시방식에서, 상기 컨볼루션 파라미터의 소수 자릿수와 상기 계층 출력 파라미터의 소수 자릿수 중의 최대 소수 자릿수를 상기 고정 소수점 파라미터에 대응되는 소수 자릿수로 삼을 수 있다.
예시적으로, 컨볼루션 신경망에 값이 1.1인 하나의 컨볼루션 파라미터가 있고, 값이 각각 1.23과 3.354인 2개의 계층 출력 파라미터가 있다고 가정하면, 즉 최대 소수 자릿수는 3이며, 상기 고정 소수점 파라미터에 대응되는 소수 자릿수를 3으로 확정할 수 있다.
또 다른 선택 가능한 실시방식에서, 상기 컨볼루션 파라미터의 소수 자릿수와 상기 계층 출력 파라미터의 소수 자릿수 중의 점유율이 가장 큰 소수 자릿수를 상기 고정 소수점 파라미터에 대응되는 소수 자릿수로 삼을 수 있다.
예시적으로, 컨볼루션 신경망에 값이 각각 1.1과 1.2인 2개의 컨볼루션 파라미터가 있고, 값이 각각 1.23과 3.354인 2개의 계층 출력 파라미터가 있다고 가정하면, 즉 점유율이 최대인 소수 자릿수는 1이며, 상기 고정 소수점 파라미터에 대응되는 소수 자릿수를 1로 확정할 수 있다.
상기 실시예를 기초로, 본 실시예는 상기 네트워크 파라미터에 대해 제1 고정 소수점 처리를 수행하는 과정에 관한 것이다.
도 4는 본 출원의 실시예가 제공하는 이미지 처리 방법의 또 다른 흐름도로서, 도 4에 도시된 바와 같이, 상기 단계 S202는 이하 단계를 포함한다:
S401: 고정 소수점 비트폭 하드웨어 리소스량의 비트 자릿수 및 상기 고정 소수점 파라미터에 따라, 상기 네트워크 파라미터의 고정 소수점 레벨(electrical level)을 확정하는 단계.
상기 과정을 거쳐 상기 고정 소수점 파라미터를 획득한 후, 고정 소수점 비트폭 하드웨어 리소스량의 비트 자릿수와 상기 고정 소수점 파라미터에 따라, 상기 네트워크 파라미터의 고정 소수점 레벨을 확정할 수 있다.
예시적으로, 고정 소수점 비트폭 하드웨어 리소스량의 비트 자릿수를 2라고 설정하고, 상기 과정을 거쳐 고정 소수점 파라미터에 대응되는 소수 자릿수를 0으로 확정하였다고 가정하면, 상기 네트워크 파라미터의 고정 소수점 레벨은 -2, -1, 0 및 1을 포함하는 것으로 확정할 수 있다.
S402: 상기 고정 소수점 레벨 및 상기 고정 소수점 함수에 따라, 상기 네트워크 파라미터에 대해 제1 고정 소수점 처리를 수행하여, 제1 고정 소수점 처리 후의 컨볼루션 신경망을 획득하는 단계.
일종의 선택 가능한 실시방식으로서, 이하 방식을 통해 상기 네트워크 파라미터에 대해 제1 고정 소수점 처리를 수행할 수 있다.
도 5는 본 출원의 실시예가 제공하는 이미지 처리 방법의 또 다른 흐름도로서, 도 5에 도시된 바와 같이, 상기 단계 S402는 이하 단계를 포함한다:
S501: 상기 네트워크 파라미터의 값과 목표 레벨의 차이값을 확정하는 단계.
여기서, 목표 레벨은 상기 네트워크 파라미터의 값과 가장 근접한 고정 소수점 레벨이다.
S502: 상기 차이값 및 고정 소수점 레벨을 상기 고정 소수점 함수에 입력하여, 상기 네트워크 파라미터에 대해 상기 제1 고정 소수점 처리를 수행한 결과를 획득하는 단계.
선택적으로, 네트워크 파라미터의 고정 소수점 레벨을 확정한 후, 본 실시예에서, 그 중 하나의 네트워크 파라미터 A를 예로 들면, 하기의 방식에 따라 상기 네트워크 파라미터 A에 대해 제1 고정 소수점 처리를 수행할 수 있으며, 나머지 네트워크 파라미터에 대해 제1 고정 소수점 처리를 수행하는 방식은 모두 상기 네트워크 파라미터 A와 동일하다.
상기 네트워크 파라미터 A가 하나의 컨볼루션 파라미터라고 가정하면, 즉 먼저 상기 컨볼루션 커넬 파라미터와 가장 근접한 고정 소수점 레벨을 확정한다. 선택적으로, 상기 컨볼루션 커넬 파라미터와 고정 소수점 레벨의 차이값 계산을 통해 상기 컨볼루션 커넬 파라미터와 가장 근접한 고정 소수점 레벨을 확정할 수 있으며, 예를 들어, 고정 소수점 레벨로부터 상기 컨볼루션 커넬 파라미터와의 차이에 차이값이 가장 작은 고정 소수점 레벨을 가장 근접한 고정 소수점 레벨(예를 들어 목표 레벨)로 선택한다.
예시적으로, 상기 단계를 거쳐 상기 컨볼루션 커넬 파라미터의 고정 소수점 레벨이 -2, -1, 0, 및 1이라고 확정하고, 상기 컨볼루션 커넬 파라미터의 값이 -1.2라고 가정하면, 즉 상기 컨볼루션 커넬 파라미터와 고정 소수점 레벨의 차이값의 계산을 통해, 상기 컨볼루션 커넬 파라미터와 가장 근접한 고정 소수점 레벨을 -1로 확정할 수 있다.
따라서, 상기 네트워크 파라미터의 값과 고정 소수점 레벨의 차이값 및 고정 소수점 레벨을 상기 고정 소수점 함수에 입력하여, 네트워크 파라미터 A에 대해 제1 고정 소수점 처리를 수행한 결과를 획득한다.
선택적으로, 상기 고정 소수점 함수가 하기 공식 (2)로 표시된다고 가정한다.
Figure pct00008
공식(2)
여기서, L은 고정 소수점 레벨(예를 들어 목표 레벨)이고, S는 네트워크 파라미터 A와 목표 레벨의 차이값이며, k는 현재 단계에 대응되는 경사율이면, 상기 과정을 통해 확정된 목표 레벨 및 차이값을 상기 공식 (2)에 입력한 후, 네트워크 파라미터 A의 제1 고정 소수점 처리 결과를 획득할 수 있다.
설명해두어야 할 점으로, 상기 고정 소수점 함수는 단지 일종의 구현방식일 뿐이며, 당업자는 실제 필요에 따라 목표 레벨 및 네트워크 파라미터와 목표 레벨의 차이값과 관련된 함수를 상기 고정 소수점 함수로 확정할 수 있다.
상기 실시예를 기초로, 본 실시예는 상기 계층 출력 파라미터에 대해 클러스터링을 수행하는 과정에 관한 것이다.
도 6은 본 출원의 실시예가 제공하는 이미지 처리 방법의 또 다른 흐름도로서, 도 6에 도시된 바와 같이, 상기 단계 S301에서 클러스터링을 수행하는 과정은 이하 단계를 포함한다:
S601: 상기 계층 출력 파라미터로부터 상기 사전 설정 수량의 계층 출력 파라미터를 선택하여 초기 클러스터 중심으로 삼는 단계.
S602: 상기 초기 클러스터 중심에 따라 클러스터링의 반복 처리를 수행하여, 상기 사전 설정 수량의 클러스터링 결과를 획득하는 단계.
예시적으로, 상기 사전 설정된 비트 자릿수가 6이라면, 즉 네트워크 파라미터가 6비트를 사용하여 표시된다고 가정하면, 본 실시예에서, 상기 계층 출력 파라미터에 대해 4비트의 클러스터링을 수행할 수 있으며, 상기 4비트는 16개의 숫자를 식별할 수 있기 때문에, 상기 사전 설정 수량은 16개일 수 있다.
초기 시, 특정한 원칙에 따라 상기 계층 출력 파라미터로부터 16개의 계층 출력 파라미터를 선택하여, 상기 16개의 계층 출력 파라미터를 초기 클러스터 중심으로 삼을 수 있으며, 나아가, 나머지 계층 출력 파라미터와 이러한 초기 클러스터 중심의 유사 정도, 즉 차이값(통상적으로 차이값이 작을수록 유사도가 높음을 나타낸다)에 따라, 각각 나머지 게층 출력 함수를 이러한 클러스터 중심에 할당하여 다수의 클러스터를 형성한다. 나아가, 각각의 클러스터의 새로운 클러스터 중심을 계산하고, 각 클러스터 중의 계층 출력 파라미터의 차이값이 수렴 조건을 만족시킬 때까지, 새로운 클러스터 중심을 바탕으로 계속 클러스터링을 반복 처리함으로써, 16개의 클러스터링 결과를 획득한다.
상기 실시예를 기초로, 본 실시예는 상기 클러스터링 결과에 대해 제2 고정 소수점 처리를 수행하는 과정에 관한 것이다.
도 7은 본 출원의 실시예가 제공하는 이미지 처리 방법의 또 다른 흐름도로서, 도 7에 도시된 바와 같이, 상기 단계 S302는 이하 단계를 포함한다:
S701: 상기 클러스터링 결과의 클러스터 중심을 확정하는 단계.
상기 처리를 거친 후, 다수의 클러스터를 획득할 수 있으며, 그 중의 각 클러스터마다 본 실시예의 S701-S703 과정에 따라 제2 고정 소수점 처리 결과를 확정할 수 있다.
다수의 클러스터 중 하나의 클러스터가 클러스터 1이라고 가정하면, 즉 본 단계에서, 먼저 상기 클러스터 1의 클러스터 중심을 확정한다.
선택적으로, 상기 클러스터 중심은 클러스터 1에 포함된 다수의 계층 출력 파라미터의 평균값이다.
S702: 상기 클러스터 중심에 대해 제2 고정 소수점 처리를 수행하여, 상기 클러스터 중심의 제2 고정 소수점 결과를 획득하는 단계.
여기서, 상기 제2 고정 소수점은 상기 클러스터 중심을 상기 클러스터 중심과 가장 근접한 고정 소수점 레벨로 처리하는데 사용된다.
선택적으로 상기 클러스터 중심에 대해 제2 고정 소수점 처리를 수행하는 단계는, 클러스터 중심 및 컨볼루션 신경망 중 부동 소수점을 사용하여 표시된 컨볼루션 파라미터, 또는 클러스터 중심 및 제1 고정 소수점 처리 후의 컨볼루션 신경망 중의 컨볼루션 파라미터를 기초로, 고정 소수점 비트폭 하드웨어 리소스량에 따라 제2 고정 소수점 처리를 수행하는 단계를 포함할 수 있다.
상기 클러스터 1의 클러스터 중심을 확정 시, 상기 클러스터 중심에 대해 제2 고정 소수점 처리를 수행할 수 있다. 여기서, 상기 제2 고정 소수점 처리는 계단 함수를 사용하여 수행될 수 있으며, 즉 계단 함수를 통해, 상기 클러스터 중심을 상기 클러스터 중심과 가장 근접한 고정 소수점 레벨로 고정 소수점 처리할 수 있다.
예시적으로, 클러스터 1의 클러스터 중심이 1.2라고 가정하면, 계단 함수를 사용하여 제2 고정 소수점 처리를 수행한 후, 상기 클러스터 중심을 1로 고정 소수점 처리할 수 있다.
S703: 상기 클러스터 중심의 제2 고정 소수점 처리 결과를 상기 클러스터링 결과의 제2 고정 소수점 처리 결과로 삼는 단계.
클러스터 1의 클러스터 중심의 제2 고정 소수점 처리 결과가 확정된 후, 즉시 상기 제2 고정 소수점 처리 결과를 클러스터 1에 포함된 각 계층 출력 파라미터의 제2 고정 소수점 처리 결과로 삼을 수 있다.
클러스터링을 수행 시, 출력 계층 파라미터보다 작은 자릿수를 표시하는 비트자리(예를 들어 계층 출력 파라미터가 6비트로 표시되면, 즉 4비트의 클러스터링을 수행한다)를 선택하여 클러스터링하며, 따라서, 최종적으로 제2 고정 소수점 처리가 완료된 후, 적은 자릿수만 사용하면 모든 계층 출력 파라미터를 표시할 수 있으며, 이에 따라, 클러스터링을 통해 고정 소수점 처리의 정밀도를 보장하는 전제하에 고정 소수점의 비트폭이 감소하여, 대역폭 점용을 감소시키는 목적을 구현한다.
당업계의 보통 기술자라면, 상기 방법의 실시예의 전부 또는 일부 단계의 구현은 프로그램 명령과 관련된 하드웨어를 통해 완수될 수 있음을 이해할 것이며, 전술한 프로그램은 컴퓨터 가독 액세스 저장매체에 저장될 수 있다. 상기 프로그램은 실행 시, 상기 방법 실시예를 포함하는 단계를 실행하며, 전술한 저장 매체는 ROM, RAM, 자기디스크 또는 광디스크 등 프로그램 코드를 저장할 수 있는 각종 매체를 포함한다.
도 8은 본 출원의 실시예가 제공하는 이미지 처리 장치의 일 구조도이다. 도 8에 도시된 바와 같이, 상기 장치는,
연산유닛의 고정 소수점 비트폭 하드웨어 리소스량에 따라 컨볼루션 신경망 중 부동 소수점을 사용하여 표시된 네트워크 파라미터에 대해 고정 소수점 처리를 수행하기 위한 파라미터 제1 처리 모듈(801),
여기서, 상기 네트워크 파라미터는 상기 컨볼루션 신경망의 컨볼루션 파라미터 및 계층 출력 파라미터를 포함하며;
처리할 이미지를 획득하기 위한 획득 모듈(802);
상기 연산유닛이 상기 컨볼루션 신경망의 고정 소수점 처리 후의 네트워크 파라미터에 따라 상기 이미지를 처리하도록 제어하여, 상기 이미지의 처리 결과를 획득하기 위한 제2 처리 모듈(803)을 포함한다.
상기 장치는 전술한 방법 실시예를 구현하기 위한 것으로서, 그 구현 원리와 기술 효과가 유사하므로, 여기서는 중복 설명을 생략한다.
도 9는 본 출원의 실시예가 제공하는 이미지 처리 장치의 또 다른 일 구조도이다. 도 9에 도시된 바와 같이, 제1 처리 모듈(801)은
컨볼루션 신경망에서 부동 소수점을 사용하여 표시된 계층 출력 파라미터에 대해 클러스터링을 수행하여, 사전 설정 수량의 클러스터링 결과를 획득하기 위한 클러스터링 유닛(8011);
클러스터링 결과, 컨볼루션 신경망에서 부동 소수점을 사용하여 표시된 컨볼루션 파라미터 및 고정 소수점 비트폭 하드웨어 리소스량에 따라 제2 고정 소수점 처리를 수행하여, 제2 고정 소수점 처리 후의 컨볼루션 신경망을 획득하기 위한 제2 고정 소수점 유닛(8012)을 포함한다.
도 10은 본 출원의 실시예가 제공하는 이미지 처리 장치의 또 다른 일 구조도이다. 도 10에 도시된 바와 같이, 제1 처리 모듈(801)은,
컨볼루션 신경망에서 부동 소수점을 사용하여 표시된 네트워크 파라미터에 따라, 네트워크 파라미터에 대응되는 고정 소수점 숫자의 소수 자릿수를 식별하는데 사용되는 고정 소수점 파라미터를 확정하기 위한 확정유닛(8013);
고정 소수점 파라미터, 사전 설정된 고정 소수점 함수 및 고정 소수점 비트폭 하드웨어 리소스량에 따라 네트워크 파라미터에 대해 제1 고정 소수점 처리를 수행하여, 제1 고정 소수점 처리 후의 컨볼루션 신경망을 획득하기 위한 제1 고정 소수점 유닛(8014)을 더 포함한다.
여기서, 고정 소수점 함수는 사전 설정 경사율을 갖는 일차함수이며, 사전 설정 경사율은 0보다 크다.
또 다른 실시예에서, 제1 처리모듈(801)은
제1 고정 소수점 처리 후의 컨볼루션 신경망 중의 계층 출력 파라미터에 대해 클러스터링을 수행하여, 사전 설정 수량의 클러스터링 결과를 획득하고;
클러스터링 결과, 제1 고정 소수점 처리 후의 컨볼루션 신경망 중의 컨볼루션 파라미터 및 고정 소수점 비트폭 하드웨어 리소스량에 따라 제2 고정 소수점 처리를 수행하여, 제2 고정 소수점 처리 후의 컨볼루션 신경망을 획득하기 위한 것이다.
또 다른 실시예에서, 확정유닛(8013)은,
컨볼루션 파라미터의 소수 자릿수 및 계층 출력 파라미터의 소수 자릿수에 따라, 고정 소수점 파라미터를 확정하기 위한 것이다.
또 다른 실시예에서, 확정유닛(8013)은
컨볼루션 파라미터의 소수 자릿수와 계층 출력 파라미터의 소수 자릿수 중의 최대 소수 자릿수를, 고정 소수점 파라미터에 대응되는 소수 자릿수로 삼기 위한 것이다.
또 다른 실시예에서, 제1 고정 소수점 유닛(8014)은,
고정 소수점 비트폭 하드웨어 리소스량의 비트 자릿수 및 고정 소수점 파라미터에 따라, 네트워크 파라미터의 고정 소수점 레벨을 확정하고;
고정 소수점 레벨 및 고정 소수점 함수에 따라, 네트워크 파라미터에 대해 제1 고정 소수점 처리를 수행하여, 제1 고정 소수점 처리 후의 컨볼루션 신경망을 획득하기 위한 것이다.
또 다른 실시예에서, 제1 고정 소수점 유닛(8014)은,
네트워크 파라미터의 값과 목표 레벨의 차이값을 확정하고;
여기서, 목표 레벨은 네트워크 파라미터의 값과 가장 근접한 고정 소수점 레벨이며; 및
차이값과 목표 레벨을 고정 소수점 함수에 입력하여, 네트워크 파라미터에 대해 제1 고정 소수점 처리를 수행한 결과를 획득하기 위한 것이다.
또 다른 실시예에서, 제1 처리 모듈(801)은
계층 출력 파라미터로부터 사전 설정 수량의 계층 출력 파라미터를 선택하여 초기 클러스터 중심으로 삼고;
초기 클러스터 중심에 따라 클러스터링의 반복 처리를 수행하여, 사전 설정 수량의 클러스터링 결과를 획득하기 위한 것이다.
또 다른 실시예에서, 제1 처리 모듈(801)은,
클러스터링 결과의 클러스터 중심을 확정하고;
클러스터 중심 및 컨볼루션 신경망에서 부동 소수점을 사용하여 표시한 컨볼루션 파라미터, 또는 클러스터 중심 및 제1 고정 소수점 처리 후의 컨볼루션 신경망 중의 컨볼루션 파라미터를 기초로, 고정 소수점 비트폭 하드웨어 리소스량에 따라 제2 고정 소수점 처리를 수행하여 제2 고정 소수점 처리 결과를 획득하기 위한 것이며, 여기서, 제2 고정 소수점은 클러스터 중심을 클러스터 중심과 가장 근접한 고정 소수점 레벨로 고정 소수점 처리하기 위한 것이다.
도 11은 본 출원의 실시예가 제공하는 이미지 처리 장치의 또 다른 구조도이다. 도 11에 도시된 바와 같이, 상기 장치는
고정 소수점 함수와 목표 계단 함수의 차이가 사전 설정 차이보다 클 경우 상기 고정 소수점 함수의 경사율을 수정하고; 및 경사율을 수정한 후의 고정 소수점 함수에 따라 새로운 제1 고정 소수점 처리를 수행하기 위한 업데이트 모듈(804)을 더 포함한다.
또 다른 실시예에서, 제2 처리 모듈(803)은,
연산유닛이 고정 소수점 처리 후의 컨볼루션 신경망의 네트워크 파라미터에 따라 이미지에 대해 적어도,
고정 소수점 곱셈 연산, 고정 소수점 덧셈 연산, 시프트 연산 중의 하나를 수행하도록 제어하기 위한 것이다.
또 다른 실시예에서, 상기 이미지의 처리 결과는 적어도,
특징 추출 결과, 분할 결과, 분류 결과, 대상 검출/추적 결과 중의 하나를 포함한다.
본 발명의 실시예가 제공하는 이미지 처리 장치의 어느 하나의 실시예의 작업 과정, 설정 방식 및 상응하는 기술 효과는, 모두 본 발명의 상기 해당 방법 실시예의 구체적인 기술을 참조하면 되므로, 여기서는 중복 설명을 생략한다.
도 12는 본 출원의 실시예가 제공하는 FPGA 기반의 차량 탑재 연산 플랫폼의 구조도이다. 도 12에 도시된 바와 같이, FPGA 기반의 차량 탑재 연산 플랫폼은, 프로세서(1201), 외부 메모리(1202), 메모리(1203)와 FPGA 연산유닛(1204)을 포함하며; 여기서,
외부 메모리(1202)에 컨볼루션 신경망의 고정 소수점 처리 후의 네트워크 파라미터가 저장되고, 네트워크 파라미터는 컨볼루션 신경망의 컨볼루션 파라미터 및 계층 출력 파라미터를 포함한다.
프로세서(1201)는 컨볼루션 네트워크의 고정 소수점 처리된 네트워크 파라미터를 메모리(1203)에 독입하여, 메모리(1203) 상의 데이터와 처리할 이미지를 FPGA 연산유닛에 입력한다.
FPGA 연산유닛(1204)은 고정 소수점 처리 후의 컨볼루션 신경망의 네트워크 파라미터에 따라 처리할 이미지에 대해 연산처리를 수행하여, 이미지의 처리 결과를 획득한다.
프로세서(1201)는 또한 상기 어느 하나의 실시예가 제공하는 이미지 처리 방법 중의 단계를 실행할 수도 있으며, 전술한 방법 실시예를 참조하면 되므로, 여기서는 중복 설명을 생략한다.
도 13은 본 출원의 실시예가 제공하는 전자 디바이스(1300)의 실체 블록도로서, 도 13에 도시된 바와 같이, 상기 전자 디바이스(1300)는 프로세서(1302)와 메모리(1301)를 포 함하며;
메모리(1301)는 적어도 하나의 실행 가능 명령을 저장하기 위한 것으로서, 상기 실행 가능 명령은 프로세서(1302)가 상기 어느 하나의 실시예가 제공하는 이미지 처리 방법에 대응되는 조작을 실행하도록 한다.
본 출원의 실시예는 또한 전자 디바이스를 제공하며,
프로세서 및 상기 어느 하나의 실시예가 제공하는 이미지 처리 장치를 포함하며; 프로세서가 이미지 처리 장치를 실행 시, 상기 어느 하나의 실시예가 제공하는 이미지 처리 장치 중의 모듈이 실행된다.
본 출원의 실시예는 지능형 주행 시스템을 더 제공하며, 상기 지능형 주행 시스템은 상기 어느 하나의 실시예가 제공하는 전자 디바이스를 포함한다.
본 출원의 실시예는 컴퓨터 가독 저장매체를 더 제공하며, 상기 컴퓨터 가독 저장매체에 상기 어느 하나의 실시예가 제공하는 이미지 처리 방법을 실행하기 위한 컴퓨터 프로그램이 저장된다.
본 명세서 중 각 실시예는 모두 점진적인 방식으로 기술되었으며, 각각의 실시예가 중점적으로 설명하는 것은 모두 다른 실시예와 상이한 점이며, 각 실시예 간의 동일하거나 유사한 부분은 서로 참조하면 된다. 시스템의 실시예의 경우, 방법 실시예와 대체로 대응되기 때문에, 비교적 간단히 기술하였으며, 관련 부분은 방법 실시예의 부분 설명을 참조하면 된다.
다양한 방식으로 본 출원의 방법과 장치를 구현할 수 있으며, 예를 들어 소프트웨어, 하드웨어, 펌웨어 또는 소프트웨어, 하드웨어, 펌웨어의 임의의 조합을 통해 본 출원의 방법과 장치를 구현할 수 있다. 상기 방법을 위한 단계의 상기 순서는 단지 설명을 위한 것일 뿐이며, 본 출원의 방법의 단계는 다른 방식으로 특별히 설명하지 않는 한, 이상의 구체적인 기술 순서에 한정되지 않는다. 또한, 일부 실시예에서, 본 출원의 실시를 기록 매체에 기록된 프로그램으로 실시할 수도 있으며, 이러한 프로그램은 본 출원에 따른 방법을 구현하기 위한 머신 가독 명령을 포함한다. 따라서, 본 출원은 본 출원의 방법을 실행하기 위한 프로그램을 저장하는 기록매체를 더 포함한다.
본 출원의 기재는 예시 및 설명을 위해 제공되는 것이지, 누락 없이 또는 본 출원을 공개된 형식으로 한정하고자 하는 것이 아니다. 많은 수정과 변화는 당 업계의 보통 기술자에게 있어서 자명한 것이며, 선택 및 기술된 실시예는 본 출원의 원리와 실제 응용을 보다 잘 설명하기 위해, 또한 당 업계의 보통 기술자가 본 출원을 이해할 수 있도록 하기 위해 설계된 특정 용도에 적합한 각종 수정이 포함된 각종 실시예이다.

Claims (43)

  1. 이미지 처리 방법에 있어서,
    연산유닛의 고정 소수점 비트폭 하드웨어 리소스량에 따라 컨볼루션 신경망에서 부동 소수점을 사용하여 표시된 네트워크 파라미터에 대해 고정 소수점 처리를 수행하는 단계, 여기서, 상기 네트워크 파라미터는 상기 컨볼루션 신경망의 컨볼루션 파라미터 및 계층 출력 파라미터를 포함하며;
    처리할 이미지를 획득하는 단계;
    상기 연산유닛이 고정 소수점 처리 후의 상기 컨볼루션 신경망의 네트워크 파라미터에 따라 상기 이미지를 처리하도록 제어하여, 상기 이미지의 처리 결과를 획득하는 단계;를 포함하는 것을 특징으로 하는 이미지 처리 방법.
  2. 제1항에 있어서,
    연산유닛의 고정 소수점 비트폭 하드웨어 리소스량에 따라 컨볼루션 신경망에서 부동 소수점을 사용하여 표시된 네트워크 파라미터에 대해 고정 소수점 처리를 수행하는 단계는,
    컨볼루션 신경망 중 부동 소수점을 사용하여 표시된 계층 출력 파라미터에 대해 클러스터링을 수행하여, 사전 설정 수량의 클러스터링 결과를 획득하는 단계;
    상기 클러스터링 결과, 상기 컨볼루션 네트워크 중 부동 소수점을 사용하여 표시된 컨볼루션 파라미터 및 고정 소수점 비트폭 하드웨어 리소스량에 따라, 제2 고정 소수점 처리를 수행하여, 제2 고정 소수점 처리 후의 컨볼루션 신경망을 획득하는 단계;를 포함하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    연산유닛의 고정 소수점 비트폭 하드웨어 리소스량에 따라 컨볼루션 신경망에서 부동 소수점을 사용하여 표시된 네트워크 파라미터에 대해 고정 소수점 처리를 수행하는 단계는,
    컨볼루션 신경망 중 부동 소수점을 사용하여 표시된 네트워크 파라미터에 따라, 상기 네트워크 파라미터에 대응되는 고정 소수점 숫자의 소수 자릿수를 식별하기 위한 고정 소수점 파라미터를 확정하는 단계;
    상기 고정 소수점 파라미터, 사전 설정된 고정 소수점 함수 및 상기 고정 소수점 비트폭 하드웨어 리소스량에 따라, 상기 네트워크 파라미터에 대해 제1 고정 소수점 처리를 수행하여, 제1 고정 소수점 처리 후의 컨볼루션 신경망을 획득하는 단계;를 포함하며, 여기서, 상기 고정 소수점 함수는 사전 설정 경사율을 갖는 일차함수이며, 상기 사전 설정 경사율은 0보다 큰 것을 특징으로 하는 방법.
  4. 제3항에 있어서,
    상기 제1 고정 소수점 처리 후의 컨볼루션 신경망 중의 상기 계층 출력 파라미터에 대해 클러스터링을 수행하여, 사전 설정 수량의 클러스터링 결과를 획득하는 단계;
    상기 클러스터링 결과, 상기 제1 고정 소수점 처리 후의 컨볼루션 신경망 중의 상기 컨볼루션 파라미터 및 상기 고정 소수점 비트폭 하드웨어 리소스량에 따라 제2 고정 소수점 처리를 수행하여, 제2 고정 소수점 처리 후의 상기 컨볼루션 신경망을 획득하는 단계;를 더 포함하는 것을 특징으로 하는 방법.
  5. 제3항 또는 제4항에 있어서,
    상기 컨볼루션 신경망 중 부동 소수점을 사용하여 표시된 네트워크 파라미터에 따라 고정 소수점 파라미터를 확정하는 단계는,
    상기 컨볼루션 파라미터의 소수 자릿수 및 상기 계층 출력 파라미터의 소수 자릿수에 따라, 상기 고정 소수점 파라미터를 확정하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 제5항에 있어서,
    상기 컨볼루션 파라미터의 자릿수 및 상기 계층 출력 파라미터의 자릿수에 따라, 상기 고정 소수점 파라미터를 확정하는 단계는,
    상기 컨볼루션 파라미터의 소수 자릿수와 상기 계층 출력 파라미터의 소수 자릿수 중의 최대 소소 자릿수를, 상기 고정 소수점 파라미터에 대응되는 소수 자릿수로 삼는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 제3항 내지 제6항 중의 어느 한 항에 있어서,
    상기 고정 소수점 파라미터, 사전 설정된 고정 소수점 함수 및 상기 고정 소수점 비트폭 하드웨어 리소스량에 따라 상기 네트워크 파라미터에 대해 제1 고정 소수점 처리를 수행하여, 제1 고정 소수점 처리 후의 컨볼루션 신경망을 획득하는 단계는,
    상기 고정 소수점 비트폭 하드웨어 리소스량의 비트 자릿수 및 상기 고정 소수점 파라미터에 따라, 상기 네트워크 파라미터의 고정 소수점 레벨을 확정하는 단계;
    상기 고정 소수점 레벨 및 상기 고정 소수점 함수에 따라, 상기 네트워크 파라미터에 대해 제1 고정 소수점 처리를 수행하여, 제1 고정 소수점 처리 후의 컨볼루션 신경망을 획득하는 단계;를 포함하는 것을 특징으로 하는 방법.
  8. 제7항에 있어서,
    상기 고정 소수점 레벨 및 상기 고정 소 수점 함수에 따라, 상기 네트워크 파라미터에 대해 제1 고정 소수점 처리를 수행하는 단계는,
    상기 네트워크 파라미터의 값과 목표 레벨의 차이값을 확정하는 단계;
    여기서, 상기 목표 레벨은 상기 네트워크 파라미터의 값과 가장 근접한 상기 고정 소수점 레벨이며;
    상기 차이값 및 상기 목표 레벨을 상기 고정 소수점 함수에 입력하여, 상기 네트워크 파라미터에 대해 상기 제1 고정 소수점 처리를 수행한 결과를 획득하는 단계;를 포함하는 것을 특징으로 하는 방법.
  9. 제2항 또는 제4항에 있어서,
    상기 클러스터링을 수행하여, 사전 설정 수량의 클러스터링 결과를 획득하는 단계는,
    상기 계층 출력 파라미터로부터 상기 사전 설정 수량의 계층 출력 파라미터를 선택하여 초기 클러스터 중심으로 삼는 단계;
    상기 초기 클러스터 중심에 따라 클러스터링의 반복 처리를 수행하여, 상기 사전 설정 수량의 클러스터링 결과를 획득하는 단계;를 포함하는 것을 특징으로 하는 방법.
  10. 제2항 또는 제4항에 있어서,
    상기 제2 고정 소수점 처리를 수행하는 단계는,
    상기 클러스터링 결과의 클러스터 중심을 확정하는 단계;
    클러스터 중심 및 컨볼루션 신경망 중 부동 소수점을 사용하여 표시된 컨볼루션 파라미터, 또는 클러스터 중심 및 제1 고정 소수점 처리 후의 컨볼루션 신경망 중의 컨볼루션 파라미터를 기초로, 고정 소수점 비트폭 하드웨어 리소스량에 따라 제2 고정 소수점 처리를 수행하여 제2 고정 소수점 처리 결과를 획득하는 단계;를 포함하며, 여기서, 상기 제2 고정 소수점은 상기 클러스터 중심을 상기 클러스터 중심과 가장 근접한 고정 소수점 레벨로 처리하기 위한 것임을 특징으로 하는 방법.
  11. 제3항 내지 제8항 중의 어느 한 항에 있어서,
    상기 고정 소수점 함수와 목표 계단 함수의 차이가 사전 설정 차이보다 큰 경우, 상기 고정 소수점 함수의 경사율을 수정하는 단계;
    상기 경사율을 수정 후의 고정 소수점 함수에 따라 새로운 제1 고정 소수점 처리를 수행하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  12. 제1항 내지 제11항 중의 어느 한 항에 있어서,
    상기 연산유닛이 고정 소수점 처리 후의 컨볼루션 신경망의 네트워크 파라미터에 따라 상기 이미지를 처리하도록 제어하는 단계는,
    상기 연산유닛이 고정 소수점 처리 후의 컨볼루션 신경망의 네트워크 파라미터에 따라 상기 이미지에 대해 적어도, 고정 소수점 곱셈 연산, 고정 소수점 덧셈 연산, 시프트 연산 중의 하나를 처리하도록 제어하는 단계를 포함하는 것을 특징으로 하는 방법.
  13. 제1항 내지 제12항 중의 어느 한 항에 있어서,
    상기 이미지 처리 결과는 적어도,
    특징 추출 결과, 분할 결과, 분류 결과, 대상 검출/추적 결과 중의 하나를 포함하는 것을 특징으로 하는 방법.
  14. 이미지 처리 장치에 있어서,
    연산유닛의 고정 소수점 비트폭 하드웨어 리소스량에 따라 컨볼루션 신경망에서 부동 소수점을 사용하여 표시된 네트워크 파라미터에 대해 고정 소수점 처리를 수행하기 위한 제1 처리 모듈, 여기서, 상기 네트워크 파라미터는 상기 컨볼루션 신경망의 컨볼루션 파라미터 및 계층 출력 파라미터를 포함하며;
    처리할 이미지를 획득하기 위한 획득 모듈;
    상기 연산유닛이 고정 소수점 처리 후의 상기 컨볼루션 신경망의 네트워크 파라미터에 따라 상기 이미지를 처리하도록 제어하여, 상기 이미지의 처리 결과를 획득하기 위한 제2 처리 모듈;을 포함하는 것을 특징으로 하는 장치.
  15. 제14항에 있어서,
    상기 제1 처리 모듈은
    상기 컨볼루션 신경망에서 부동 소수점을 사용하여 표시된 계층 출력 파라미터에 대해 클러스터링을 수행하여, 사전 설정 수량의 클러스터링 결과를 획득하기 위한 클러스터링 유닛;
    상기 클러스터링 결과, 상기 컨볼루션 신경망에서 부동 소수점을 사용하여 표시된 컨볼루션 파라미터 및 상기 고정 소수점 비트폭 하드웨어 리소스량에 따라 제2 고정 소수점 처리를 수행하여, 제2 고정 소수점 처리 후의 상기 컨볼루션 신경망을 획득하기 위한 제2 고정 소수점 유닛;을 포함하는 것을 특징으로 하는 장치.
  16. 제14항에 있어서,
    상기 제1 처리 모듈은,
    컨볼루션 신경망 중 부동 소수점을 사용하여 표시된 네트워크 파라미터에 따라, 상기 네트워크 파라미터에 대응되는 고정 소수점 숫자의 소수 자릿수를 식별하는데 사용되는 고정 소수점 파라미터를 확정하기 위한 확정유닛;
    상기 고정 소수점 파라미터, 사전 설정된 고정 소수점 함수 및 상기 고정 소수점 비트폭 하드웨어 리소스량에 따라 상기 네트워크 파라미터에 대해 제1 고정 소수점 처리를 수행하여, 제1 고정 소수점 처리 후의 컨볼루션 신경망을 획득하기 위한 제1 고정 소수점 유닛;을 더 포함하며, 여기서, 상기 고정 소수점 함수는 사전 설정 경사율을 갖는 일차함수이고, 상기 사전 설정 경사율은 0보다 큰 것을 특징으로 하는 장치.
  17. 제16항에 있어서,
    상기 제1 처리모듈은
    상기 제1 고정 소수점 처리 후의 컨볼루션 신경망 중의 상기 계층 출력 파라미터에 대해 클러스터링을 수행하여, 사전 설정 수량의 클러스터링 결과를 획득하고;
    상기 클러스터링 결과, 상기 제1 고정 소수점 처리 후의 컨볼루션 신경망 중의 상기 컨볼루션 파라미터 및 상기 고정 소수점 비트폭 하드웨어 리소스량에 따라 제2 고정 소수점 처리를 수행하여, 제2 고정 소수점 처리 후의 컨볼루션 신경망을 획득하기 위한 것임을 특징으로 하는 장치.
  18. 제16항 또는 제17항에 있어서,
    상기 확정유닛은,
    상기 컨볼루션 파라미터의 소수 자릿수 및 상기 계층 출력 파라미터의 소수 자릿수에 따라, 상기 고정 소수점 파라미터를 확정하기 위한 것임을 특징으로 하는 장치.
  19. 제18항에 있어서,
    상기 확정유닛은
    상기 컨볼루션 파라미터의 소수 자릿수와 상기 계층 출력 파라미터의 소수 자릿수 중의 최대 소수 자릿수를, 상기 고정 소수점 파라미터에 대응되는 소수 자릿수로 삼기 위한 것임을 특징으로 하는 장치.
  20. 제16항 내지 제19항 중의 어느 한 항에 있어서,
    상기 제1 고정 소수점 유닛은,
    상기 고정 소수점 비트폭 하드웨어 리소스량의 비트 자릿수 및 상기 고정 소수점 파라미터에 따라, 상기 네트워크 파라미터의 고정 소수점 레벨을 확정하고;
    상기 고정 소수점 레벨 및 상기 고정 소수점 함수에 따라, 상기 네트워크 파라미터에 대해 제1 고정 소수점 처리를 수행하여, 제1 고정 소수점 처리 후의 컨볼루션 신경망을 획득하기 위한 것임을 특징으로 하는 장치.
  21. 제20항에 있어서,
    상기 제1 고정 소수점 유닛은,
    상기 네트워크 파라미터의 값과 목표 레벨의 차이값을 확정하고;
    여기서, 상기 목표 레벨은 상기 네트워크 파라미터의 값과 가장 근접한 고정 소수점 레벨이며; 및
    상기 차이값과 상기 목표 레벨을 상기 고정 소수점 함수에 입력하여, 상기 네트워크 파라미터에 대해 상기 제1 고정 소수점 처리를 수행한 결과를 획득하기 위한 것임을 특징으로 하는 장치.
  22. 제15항 또는 제17항에 있어서,
    상기 제1 처리 모듈은
    상기 계층 출력 파라미터로부터 상기 사전 설정 수량의 계층 출력 파라미터를 선택하여 초기 클러스터 중심으로 삼고;
    상기 초기 클러스터 중심에 따라 클러스터링의 반복 처리를 수행하여, 상기 사전 설정 수량의 클러스터링 결과를 획득하기 위한 것임을 특징으로 하는 장치.
  23. 제15항 또는 제17항에 있어서,
    상기 제1 처리 모듈은,
    상기 클러스터링 결과의 클러스터 중심을 확정하고;
    상기 클러스터 중심 및 상기 컨볼루션 신경망에서 부동 소수점을 사용하여 표시된 컨볼루션 파라미터, 또는 상기 클러스터 중심 및 제1 고정 소수점 처리 후의 컨볼루션 신경망 중의 상기 컨볼루션 파라미터를 기초로, 상기 고정 소수점 비트폭 하드웨어 리소스량에 따라 제2 고정 소수점 처리를 수행하여 제2 고정 소수점 처리 결과를 획득하기 위한 것이며, 여기서, 제2 고정 소수점은 클러스터 중심을 클러스터 중심과 가장 근접한 고정 소수점 레벨로 처리하기 위한 것임을 특징으로 하는 장치.
  24. 제16항 내지 제21항 중의 어느 한 항에 있어서,
    상기 고정 소수점 함수와 목표 계단 함수의 차이가 사전 설정 차이보다 클 경우 상기 고정 소수점 함수의 경사율을 수정하고; 및 경사율을 수정한 후의 고정 소수점 함수에 따라 새로운 제1 고정 소수점 처리를 수행하기 위한 업데이트 모듈을 더 포함하는 것을 특징으로 하는 장치.
  25. 제14항 내지 제24항 중의 어느 한 항에 있어서,
    제2 처리 모듈은,
    상기 연산유닛이 고정 소수점 처리 후의 컨볼루션 신경망의 네트워크 파라미터에 따라 이미지에 대해 적어도,
    고정 소수점 곱셈 연산, 고정 소수점 덧셈 연산, 시프트 연산 중의 하나를 수행하도록 제어하기 위한 것임을 특징으로 하는 장치.
  26. 제14항 내지 제25항 중의 어느 한 항에 있어서,
    상기 이미지의 처리 결과는 적어도,
    특징 추출 결과, 분할 결과, 분류 결과, 대상 검출/추적 결과 중의 하나를 포함하는 것을 특징으로 하는 장치.
  27. 필드 프로그래머블 게이트 어레이(FPGA) 기반의 차량 탑재 연산 플랫폼에 있어서,
    프로세서, 외부 메모리, 메모리와 FPGA 연산유닛을 포함하고;
    상기 외부 메모리에 상기 컨볼루션 신경망의 고정 소수점으로 처리 후의 네트워크 파라미터가 저장되고, 상기 네트워크 파라미터는 상기 컨볼루션 신경망의 컨볼루션 파라미터 및 계층 출력 파라미터를 포함하며;
    상기 프로세서는 상기 컨볼루션 신경망의 고정 소수점으로 처리된 네트워크 파라미터를 상기 메모리에 독입(讀入)하여, 상기 메모리 상의 데이터와 처리할 이미지 정보를 상기 FPGA 연산유닛에 입력하며;
    상기 FPGA 연산유닛은 상기 고정 소수점으로 처리 후의 컨볼루션 신경망의 네트워크 파라미터에 따라 상기 처리할 이미지에 대해 연산 처리를 수행하여, 상기 이미지의 처리 결과를 획득하는 것을 특징으로 하는 FPGA 기반의 차량 탑재 연산 플랫폼.
  28. 제27항에 있어서,
    상기 프로세서는
    상기 컨볼루션 신경망에서 부동 소수점을 사용하여 표시된 계층 출력 파라미터에 대해 클러스터링을 수행하여, 사전 설정 수량의 클러스터링 결과를 획득하고;
    상기 클러스터링 결과, 상기 컨볼루션 신경망에서 부동 소수점을 사용하여 표시된 컨볼루션 파라미터 및 상기 고정 소수점 비트폭 하드웨어 리소스량에 따라 제2 고정 소수점 처리를 수행하여, 제2 고정 소수점 처리 후의 상기 컨볼루션 신경망을 획득하기 위한 것임을 특징으로 하는 플랫폼.
  29. 제27항에 있어서,
    상기 프로세서는,
    컨볼루션 신경망 중 부동 소수점을 사용하여 표시된 네트워크 파라미터에 따라, 상기 네트워크 파라미터에 대응되는 고정 소수점 숫자의 소수 자릿수를 식별하는데 사용되는 고정 소수점 파라미터를 확정하고;
    상기 고정 소수점 파라미터, 사전 설정된 고정 소수점 함수 및 상기 고정 소수점 비트폭 하드웨어 리소스량에 따라 상기 네트워크 파라미터에 대해 제1 고정 소수점 처리를 수행하여, 제1 고정 소수점 처리 후의 컨볼루션 신경망을 획득하기 위한 것이며, 여기서, 상기 고정 소수점 함수는 사전 설정 경사율을 갖는 일차함수이고, 상기 사전 설정 경사율은 0보다 큰 것을 특징으로 하는 플랫폼.
  30. 제29항에 있어서,
    상기 프로세서는
    상기 제1 고정 소수점 처리 후의 컨볼루션 신경망 중의 상기 계층 출력 파라미터에 대해 클러스터링을 수행하여, 사전 설정 수량의 클러스터링 결과를 획득하고;
    상기 클러스터링 결과, 상기 제1 고정 소수점 처리 후의 컨볼루션 신경망 중의 상기 컨볼루션 파라미터 및 상기 고정 소수점 비트폭 하드웨어 리소스량에 따라 제2 고정 소수점 처리를 수행하여, 제2 고정 소수점 처리 후의 컨볼루션 신경망을 획득하기 위한 것임을 특징으로 하는 플랫폼.
  31. 제29항 또는 제30항에 있어서,
    상기 프로세서는
    상기 컨볼루션 파라미터의 소수 자릿수 및 상기 계층 출력 파라미터의 소수 자릿수에 따라, 상기 고정 소수점 파라미터를 확정하기 위한 것임을 특징으로 하는 플랫폼.
  32. 제31항에 있어서,
    상기 프로세서는
    상기 컨볼루션 파라미터의 소수 자릿수와 상기 계층 출력 파라미터의 소수 자릿수 중의 최대 소수 자릿수를, 상기 고정 소수점 파라미터에 대응되는 소수 자릿수로 삼기 위한 것임을 특징으로 하는 플랫폼.
  33. 제29항 내지 제32항 중의 어느 한 항에 있어서,
    상기 프로세서는
    상기 고정 소수점 비트폭 하드웨어 리소스량의 비트 자릿수 및 상기 고정 소수점 파라미터에 따라, 상기 네트워크 파라미터의 고정 소수점 레벨을 확정하고;
    상기 고정 소수점 레벨 및 상기 고정 소수점 함수에 따라, 상기 네트워크 파라미터에 대해 제1 고정 소수점 처리를 수행하여, 제1 고정 소수점 처리 후의 컨볼루션 신경망을 획득하기 위한 것임을 특징으로 하는 플랫폼.
  34. 제33항에 있어서,
    상기 프로세서는
    상기 네트워크 파라미터의 값과 목표 레벨의 차이값을 확정하고;
    여기서, 상기 목표 레벨은 상기 네트워크 파라미터의 값과 가장 근접한 고정 소수점 레벨이며; 및
    상기 차이값과 상기 목표 레벨을 상기 고정 소수점 함수에 입력하여, 상기 네트워크 파라미터에 대해 상기 제1 고정 소수점 처리를 수행한 결과를 획득하기 위한 것임을 특징으로 하는 플랫폼.
  35. 제28항 또는 제30항에 있어서,
    상기 프로세서는
    상기 계층 출력 파라미터로부터 상기 사전 설정 수량의 계층 출력 파라미터를 선택하여 초기 클러스터 중심으로 삼고;
    상기 초기 클러스터 중심에 따라 클러스터링의 반복 처리를 수행하여, 상기 사전 설정 수량의 클러스터링 결과를 획득하기 위한 것임을 특징으로 하는 플랫폼.
  36. 제28항 또는 제30항에 있어서,
    상기 프로세서는
    상기 클러스터링 결과의 클러스터 중심을 확정하고;
    상기 클러스터 중심 및 상기 컨볼루션 신경망에서 부동 소수점을 사용하여 표시된 컨볼루션 파라미터, 또는 상기 클러스터 중심 및 제1 고정 소수점 처리 후의 컨볼루션 신경망 중의 상기 컨볼루션 파라미터를 기초로, 상기 고정 소수점 비트폭 하드웨어 리소스량에 따라 제2 고정 소수점 처리를 수행하여 제2 고정 소수점 처리 결과를 획득하기 위한 것이며, 여기서, 제2 고정 소수점은 클러스터 중심을 클러스터 중심과 가장 근접한 고정 소수점 레벨로 처리하기 위한 것임을 특징으로 하는 플랫폼.
  37. 제29항 내지 제34항 중의 어느 한 항에 있어서,
    상기 프로세서는
    상기 고정 소수점 함수와 목표 계단 함수의 차이가 사전 설정 차이보다 클 경우 상기 고정 소수점 함수의 경사율을 수정하고;
    경사율을 수정한 후의 고정 소수점 함수에 따라 새로운 제1 고정 소수점 처리를 수행하기 위한 것임을 특징으로 하는 플랫폼.
  38. 제27항 내지 제37항 중의 어느 한 항에 있어서,
    상기 프로세서는
    상기 연산유닛이 고정 소수점 처리 후의 컨볼루션 신경망의 네트워크 파라미터에 따라 이미지에 대해 적어도,
    고정 소수점 곱셈 연산, 고정 소수점 덧셈 연산, 시프트 연산 중의 하나를 수행하도록 제어하기 위한 것임을 상기 프로세서는 것을 특징으로 하는 플랫폼.
  39. 제27항 내지 제38항 중의 어느 한 항에 있어서,
    상기 이미지 처리 결과는 적어도, 특징 추출 결과, 분할 결과, 분류 결과, 대상 검출/추적 결과 중의 하나를 포함하는 것을 특징으로 하는 플랫폼.
  40. 전자 디바이스에 있어서,
    프로세서 및 메모리를 포함하며;
    상기 메모리는 적어도 하나의 실행 가능 명령을 저장하기 위한 것이고, 상기 실행 가능 명령은 상기 프로세서가 제1항 내지 제13항 중의 어느 한 항에 따른 이미지 처리 방법에 대응하는 조작을 실행하도록 하는 것을 특징으로 하는 전자 디바이스.
  41. 전자 디바이스에 있어서,
    프로세서 및 제14항 내지 제26항 중의 어느 한 항에 따른 이미지 처리장치를 포함하며; 프로세서가 상기 이미지 처리장치를 실행 시, 제14항 내지 제26항 중의 어느 한 항에 따른 이미지 처리 장치 중의 모듈이 실행되는 것을 특징으로 하는 전자 디바이스.
  42. 지능형 주행 시스템에 있어서,
    제40항 또는 제41항에 따른 전자 디바이스를 포함하는 것을 특징으로 하는 지능형 주행 시스템.
  43. 컴퓨터 가독 저장매체에 있어서,
    제1항 내지 제13항 중의 어느 한 항에 따른 이미지 처리 방법을 실행하기 위한 컴퓨터 프로그램이 저장되는 것을 특징으로 하는 컴퓨터 가독 저장매체.
KR1020217018149A 2018-12-29 2019-12-26 이미지 처리 방법, 장치, 차량 탑재 연산 플랫폼, 전자 디바이스 및 시스템 KR20210090249A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201811647408.2A CN111383157B (zh) 2018-12-29 2018-12-29 图像处理方法、装置、车载运算平台、电子设备及***
CN201811647408.2 2018-12-29
PCT/CN2019/128763 WO2020135601A1 (zh) 2018-12-29 2019-12-26 图像处理方法、装置、车载运算平台、电子设备及***

Publications (1)

Publication Number Publication Date
KR20210090249A true KR20210090249A (ko) 2021-07-19

Family

ID=71125717

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217018149A KR20210090249A (ko) 2018-12-29 2019-12-26 이미지 처리 방법, 장치, 차량 탑재 연산 플랫폼, 전자 디바이스 및 시스템

Country Status (4)

Country Link
JP (1) JP2022512211A (ko)
KR (1) KR20210090249A (ko)
CN (1) CN111383157B (ko)
WO (1) WO2020135601A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112308226B (zh) * 2020-08-03 2024-05-24 北京沃东天骏信息技术有限公司 神经网络模型的量化、用于输出信息的方法和装置
CN117501300A (zh) * 2021-06-28 2024-02-02 华为技术有限公司 图像处理方法和图像处理装置
CN114611685A (zh) * 2022-03-08 2022-06-10 安谋科技(中国)有限公司 神经网络模型中的特征处理方法、介质、设备和程序产品

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10262259B2 (en) * 2015-05-08 2019-04-16 Qualcomm Incorporated Bit width selection for fixed point neural networks
CN107689948B (zh) * 2016-08-22 2020-09-01 赛灵思公司 应用于神经网络硬件加速***的高效数据访存管理装置
CN106611216A (zh) * 2016-12-29 2017-05-03 北京旷视科技有限公司 基于神经网络的计算方法及装置
CN108734264A (zh) * 2017-04-21 2018-11-02 展讯通信(上海)有限公司 深度神经网络模型压缩方法及装置、存储介质、终端
US10838910B2 (en) * 2017-04-27 2020-11-17 Falcon Computing Systems and methods for systolic array design from a high-level program
CN107480770B (zh) * 2017-07-27 2020-07-28 中国科学院自动化研究所 可调节量化位宽的神经网络量化与压缩的方法及装置
CN107885214A (zh) * 2017-11-22 2018-04-06 济南浪潮高新科技投资发展有限公司 一种基于fpga的加速自动驾驶视觉感知的方法及装置
CN108053028B (zh) * 2017-12-21 2021-09-14 深圳励飞科技有限公司 数据定点化处理方法、装置、电子设备及计算机存储介质
CN108830288A (zh) * 2018-04-25 2018-11-16 北京市商汤科技开发有限公司 图像处理方法、神经网络的训练方法、装置、设备及介质
CN109002881A (zh) * 2018-06-28 2018-12-14 郑州云海信息技术有限公司 基于fpga的深度神经网络的定点化计算方法及装置

Also Published As

Publication number Publication date
JP2022512211A (ja) 2022-02-02
CN111383157A (zh) 2020-07-07
CN111383157B (zh) 2023-04-14
WO2020135601A1 (zh) 2020-07-02

Similar Documents

Publication Publication Date Title
CN108701250B (zh) 数据定点化方法和装置
US20190164043A1 (en) Low-power hardware acceleration method and system for convolution neural network computation
CN108629414B (zh) 深度哈希学习方法及装置
KR20210090249A (ko) 이미지 처리 방법, 장치, 차량 탑재 연산 플랫폼, 전자 디바이스 및 시스템
CN110956255A (zh) 难样本挖掘方法、装置、电子设备及计算机可读存储介质
CN115147598A (zh) 目标检测分割方法、装置、智能终端及存储介质
CN110633717A (zh) 一种目标检测模型的训练方法和装置
CN110337636A (zh) 数据转换方法和装置
CN112631947A (zh) 应用程序的测试控制方法、装置、电子设备及存储介质
CN109753157B (zh) 显示屏的手势控制方法及装置
JP2024511018A (ja) 空間関係の決定方法、装置、コンピュータ装置及び記憶媒体
CN110633597B (zh) 一种可行驶区域检测方法和装置
CN111221827B (zh) 基于图形处理器的数据库表连接方法、装置、计算机设备和存储介质
WO2020256836A1 (en) Sparse convolutional neural network
US20230008856A1 (en) Neural network facilitating fixed-point emulation of floating-point computation
US9886652B2 (en) Computerized correspondence estimation using distinctively matched patches
CN112148865B (zh) 信息推送方法和装置
CN113778078A (zh) 定位信息生成方法、装置、电子设备和计算机可读介质
CN112639761A (zh) 一种为数据建立索引的方法以及装置
CN110633595A (zh) 一种利用双线性插值的目标检测方法和装置
CN114040014B (zh) 内容推送方法、装置、电子设备及计算机可读存储介质
CN115984661B (zh) 目标检测中的多尺度特征图融合方法、装置、设备及介质
CN111985471B (zh) 一种车牌定位方法、装置及存储介质
KR20210092254A (ko) 이미지 처리 방법, 장치, 지능형 주행 시스템 및 차량 탑재 연산 플랫폼
CN116405883B (zh) 一种无人驾驶设备集群的覆盖搜寻方法、装置和终端设备

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application