본문 바로가기 주메뉴 바로가기

1. 개요

허스키렌즈는 얼굴 인식, 물체 추적, 물체 인식, 라인 추적, 색상 인식, 태그 인식, 물체 분류(이미지 학습)을 할 수 있는 AI 머신 비전 센서입니다. 허스키렌즈 프로의 경우 개선된 성능에 더불어 QR과 바코드 인식도 가능합니다. 

인터넷 없이 사용할 수 있는 것이 가장 큰 장점이겠지요.

UART/I2C 포트를 통해 쉽게 다양한 보드와 연결하여 사용이 가능합니다.

본 이매뉴얼의 정보는 대부분 DFROBOT의 튜토리얼에서 획득한 것으로, 페이지 정보는 아래와 같습니다.

https://wiki.dfrobot.com/HUSKYLENS_V1.0_SKU_SEN0305_SEN0336

1. 기본 사양


-. 프로세서: Kendryte K210

-. 이미지 센서: OV2640 (2.0메가픽셀 카메라)

-. 공급 전압: 3.3~5.0V

-. 소비 전류(유형): 320mA @ 3.3V, 230mA @ 5.0V(얼굴 인식 모드, 백라이트 밝기 80%, 필라이트 꺼짐)

-. Interr: UART; I2C

-. 디스플레이: 320*240 해상도의 2.0인치 IPS 화면

-. 내장 알고리즘: 얼굴 인식, 물체 추적, 물체 인식, 라인 추적, 색상 인식, 태그 인식, 물체 분류 

-. 크기: 52mm x 44.5mm(2.05*1.75인치)

2. 구성

2. 기본 사용법


2.1. 버튼


허스키렌즈에는 기능버튼과 학습버튼이 있습니다.

간단히 정리하면 아래와 같습니다.


1. 기능버튼
 - 좌우로 이동하여 기능 전환
 - 짧게 눌러서 기능 진입

 - 길게 눌러서 각각의 메뉴관련 설정모드로 진입


2. 학습버튼
 - 짧게 눌러서 물체 학습
 - 길게 눌러서 다양한 각도와 거리에서 학습(사진 여러장을 찍어 학습하는 것)

 - 이전 학습 결과를 삭제할 때


2.2. 펌웨어 업데이트


기본 기능을 이용하기 위해서는 최소 0.5.1a 버전 이상이 되면 됩니다.

아마 대부분 구입을 하시면 0.5.1 버전입니다. 따라서 업데이트보다는 뭔가 잘 안될 때 초기화 시 사용하면 됩니다. (기본 설정에서 공장 초기화를 선택할 수도 있습니다)


1. 펌웨어 확인


기능버튼을 오른쪽으로 돌리면 마지막의 General Setting에서 기능버튼을 눌러 진입하면 마지막 즈음 버전이 보입니다.

(나올 때는 왼쪽 첫번제 Save & Return)을 선택하면 됩니다) 



2. 파일 다운로드
 
 -. 허스키렌즈 펌웨어 업로더 프로그램 -> 링크

 -. 최신 버전 펌웨어 0.5.1a 버전 -> 링크 
 -. CP210 USB 드라이버 -> 링크


3. 펌웨어 업로드 하기 


 -. CP210 USB 드라이버 설치 (설치 되어있는 경우 생략)

 -. 펌웨어 업로더 프로그램 설치 및 실행

 -. 최신 펌웨어 선택하여 불러오기

 -. Upload 클릭
 -. 포트를 설정하라고 나오면 장치관리자에서 포트 번호 확인하여 넣어주기


2.3. 색상과 좌표


1. 색상


 사각 프레임과 중앙의 + 기호의 색상으로 허스키렌즈의 현재 상태에 대하여 알 수 있습니다.


 1) 주황 ↔ 노랑

  아직 학습된 객체는 아니지만, 학습할 준비는 되었음


 2) 노랑 

  새로운 객체를 학습 중


 3) 파랑

  학습된 객체를 인식 함


2. 좌표


 허스키렌즈가 물체를 감지하면 화면의 컬러 프레임에 의해 대상이 자동으로 선택됩니다. 컬러 프레임 위치의 좌표 x와 y는 다음 좌표계에 따라 할당되어, UART/I2C 포트에서 좌표를 가져온 후 물체의 위치를 알 수 있습니다.


3. 허스키렌즈 기능


3.1. 기본 설정


1. 기본 설정 모드 기본 사용


기능버튼을 오른쪽으로 움직여서 General Setting으로 이동 후 짧게 눌어 진입합니다.

각각의 설정도 기능버튼으로 합니다. 메뉴 이동하여 기능 버튼을 짧게 눌러 진입 후 기능버튼을 좌우로 이동하여 선택 후 다시 기능버튼을 눌러 선택합니다.

나올 때는 맨 왼쪽의 Save & Return을 선택하면 됩니다.



 

2. 설정 내용


 1) 프로토콜 타입

  9600, 115200, 1000000의 3가지 UART 전송 속도와 I2C 프로토콜을 지원합니다. 보통 Auto Detect로 설정하면 자동으로 처리가 됩니다.

  

 2) 스크린 밝기

  화면 밝기는 1~100까지 지원합니다. 기본값은 80입니다.


 3) 메뉴 자동 숨기 

  일정 시간 동안 허스키렌즈를 조작하지 않으면 화면의 메뉴가 자동으로 숨겨집니다. 이 기간은 1~100초 사이에서 조정할 수 있습니다. 기본값은 10초입니다.


 4) LED 조명

  허스키렌즈 전면에는 두 개의 LED 조명이 있습니다. 켜기 또는 끄기로 설정할 수 있습니다. 기본값은 꺼짐입니다. 


 5) LED 밝기

  허스키렌즈 전면에는 이 두 LED 표시등의 밝기 범위는 1에서 100까지입니다. 기본값은 50입니다. 


 6) RGB 조명

  허스키렌즈 전면에도 RGB 조명이 있습니다. 켜거나 끌 수 있습니다. 기본값은 켜짐입니다. 


 7) RGB 밝기

  RGB 조명의 밝기 범위는 1~100입니다. 기본값은 20입니다. 


 8) 공장 초기화

  허스키 렌즈를 공장 설정으로 초기화할 수 있습니다. 


 9) 버전

  기본 제공 펌웨어의 현재 버전입니다. 


 10) 언어

   아쉽게도 중국어와 영어만 지원합니다.

3.2. 얼굴 인식


얼굴의 윤곽을 감지합니다. 또 감지된 얼굴을 학습할 수 있고 추적할 수도 있습니다. 


1. 기능 선택

 

 Face Recognition 을 선택합니다. 얼굴이 인식되면 'Face'로 표시된 하얀색 테두리가 뜹니다.

 

2. 얼굴 학습

 1) 얼굴 학습
  "+" 기호를 얼굴에 가리키고 "학습 버튼"을 짧게 눌러 얼굴을 학습합니다. 허스키 렌즈가 동일한 얼굴을 감지하면 파란색 프레임에 "Face: ID1"이라는 파란색 프레임이 화면에 표시되며, 이는 해당 얼굴을 학습하여 이제 인식할 수 있음을 나타냅니다.

 2) 동일한 사람의 얼굴을 추가 학습
 아래 사진처럼 학습 버튼을 누른 채 같은 사람의 여러 장의 사진을 보여주거나 다양한 각도에서 보여주어 학습할 수도 있습니다. 학습 버튼을 놓으면 학습이 완료됩니다.
기본 설정의 얼굴 학습은 1개만 가능합니다.
 


 3) 여러명의 얼굴 학습


  -. 얼굴 인식에서 기능버튼을 길게 눌러 얼굴 인식 설정으로 들어옵니다.

  -. Learn Multiple 항목에서 기능버튼을 누르고 오른쪽으로 움직여 스위치를 켭니다.

  -. 저장하고 나옵니다.




  -. + 기호를 얼굴에 대고 학습버튼을 길게 눌러 학습합니다. 학습버튼에서 손을 떼고 "Click again to continue! Click other Button to finish(계속하려면 다시 클릭하고 아니면 다른 버튼을 누르세요)" 라고 메세지가 나오면 시간이 지나가기 전에 다른 사람의 얼굴에 + 기호를 대고 학습버튼을 길게 눌러 학습을 합니다. 이 과정을 반복하여 여러명의 얼굴을 학습할 수 있습니다. 학습된 순서는 ID1 → Face:ID2 → Face:ID3 .... 순서입니다.





3. 학습 지우기

 학습버튼을 짧게 클릭하면 "Click again to Foget!" 이라고 나옵니다. 시간 내에 학습버튼을 짧게 누르면 학습한 내용이 지워집니다. 모든 학습 지우기는 이와 같습니다.^^


 

3.3. 물체 추적


이 기능은 지정된 물체를 학습하고 추적할 수 있습니다. 하나의 물체만 추적할 수 있으며 여러 개의 물체는 지원되지 않습니다


1. 기능 선택

 Object Tracking 을 선택합니다.


 설정의 경우(기능버튼 길게 눌러 진입) Learn Enable, Auto Save가 켜져 있어야 합니다. 기본적으로 켜져 있습니다. Frame ratio와 Frame Size로 물체를 추적할 사각형의 크기를 조절할 수 있습니다.
 
2. 물체 추적 학습

 사각형을 물체에 맞춘 뒤 학습버튼을 길게 누릅니다. 누른 상태에서 거리 조절 및 다양한 각도로 학습시킵니다. 학습이 진행되는 동안 노란색 프레임에 "Learning:ID1" 라고 표시됩니다. 학습버튼을 놓으면 학습이 완료됩니다.


 허스키렌즈 또는 물체를 움직이면 프레임이 자동으로 학습된 물체를 추적합니다. 

3. 지우기

 학습버튼을 짧게 클릭하면 "Click again to Foget!" 이라고 나옵니다. 시간 내에 학습버튼을 짧게 누르면 학습한 내용이 지워집니다. 모든 학습 지우기는 이와 같습니다.^^ 

3.4. 물체 인식


허스키렌즈에 학습된 물체를 인식하는 기능입니다. 총 20개를 인식할 수 있는데, 정확하지는 않습니다^^;; 

인식 가능한 물체는 '비행기, 자전거, 새, 보트, 병, 버스, 자동차, 고양이, 의자, 소, 식사 가능, 개, 말, 오토바이, 사람, 화분, 양, 소파, 기차, TV'  입니다.

그리고, 당연히 같은 유형은 구분할 수 없습니다. 비행기는 전부 비행기입니다^^


1. 기능 선택

 Object Recognition을 선택합니다. 기능설정에서 다중학습을 키면 여러개를 동시에 인식할 수도 있습니다.

 
2. 물체 인식

 물체를 감지하면 허스키렌즈가 자동으로 인식하여 화면에 이름과 함께 흰색 프레임으로 물체가 표시됩니다.

 + 기호를 물체에 맞추고 학습버튼을 짧게 누르면 물체를 학습할 수도 있습니다.


다른 물체 분류 학습 기능이 있으니 단순히 체험용으로 쓰는 것이 더 좋아보입니다.^^
 
3. 지우기

 학습버튼을 짧게 클릭하면 "Click again to Foget!" 이라고 나옵니다. 시간 내에 학습버튼을 짧게 누르면 학습한 내용이 지워집니다. 모든 학습 지우기는 이와 같습니다.^^ 

3.5. 라인 추적


지정된 컬러 라인을 추적하여 경로를 예측할 수 있습니다. 여러 색상은 복잡하니 하나의 컬러 라인만 추적해봅니다. 이 기능을 이용하여 라인트레이서를 손쉽게 구현할 수 있습니다.

라인트레이서 제작은 예제편에서 다루겠습니다.


1. 기능 선택

 Line Tracking을 선택합니다. 하나의 컬러 라인 활용을 위해 기능버튼을 길게 눌러 설정으로 들어가서, 다중학습을 꺼놓습니다. 어두운 환경이면 LED를 켤 수도 있습니다. 
설정이 되면 저장하고 나옵니다.


2. 라인 인식

 허스키렌즈의 시야 필드 내에서 학습할 선만 남기고 교차하는 선을 만들지 않도록 합니다. "+" 기호로 선으로 가리키면, 허스키렌즈가 자동으로 선을 감지하고 화면에 흰색 화살표가 나타납니다.
이때 '학습 버튼'을 짧게 눌러 학습 과정을 완료합니다. 학습이 되면 파란색 경로 방향 화살표가 화면에 나타납니다. 이 화살표는 선의 예상 방향을 나타냅니다. 
 
 허스키렌즈는 되도록 선과 평행하게 놓는 것이 좋습니다. 그래서 대부분 이동형 로봇에 부착하여 바닥을 보도록 꺽어 놓습니다. 선의 색상에 따라 여러개의 선을 추적할 수 있지만 복잡해지고, 안정성이 떨어질 수 있어(잘 구분하지 못하는) 단색 선 1개를 하는 것이 좋고, 주변 조명도 안정적인 것이 좋습니다.
 
3. 지우기

 학습버튼을 짧게 클릭하면 "Click again to Foget!" 이라고 나옵니다. 시간 내에 학습버튼을 짧게 누르면 학습한 내용이 지워집니다. 모든 학습 지우기는 이와 같습니다.^^ 

3.6. 색상 인식


지정된 색상을 학습 후 인식 및 추적할 수 있습니다. 색상은 조명의 영향을 많이 받으니 창문 옆 등 태양광이 들어오는 곳은 잘 안될 수 있습니다.


1. 기능 선택

 Color Recogniton을 선택합니다. 여러가지 색상을 인식하기 위해 기능버튼을 길게 눌러 '다중 학습'을 킵니다. 설정이 완료되면 저장 후 나옵니다.


2. 색상 인식

 1) + 기호를 색상이 있는 물체에 가져가면 자동으로 흰색 프레임으로 선택됩니다. 이 흰색 프레임이 가능한 한 색상 물체 전체를 포함하도록 각도나 거리를 조정합니다.
 2) 학습버튼을 길게 누른 상태에서 역시 각도와 거리를 조절하며 색상 물체를 학습합니다. 학습버튼에서 손을 떼면 학습이 완료됩니다. 
 3) 다른 색상 물체 학습을 추가하려면,  "Click again to continue! Click other Button to finish(계속하려면 다시 클릭하고 아니면 다른 버튼을 누르세요)" 라고 메세지가 나올때 시간이 지나가기 전에 학습버튼을 짧게 누릅니다. (시간이 지나가면 학습 완료)
 4) 다른 색상 물체에 + 기호를 대고 학습버튼을 길게 눌러 학습을 합니다. 이 과정을 반복하면 됩니다.


  5) 기능 버튼을 길게 눌러 들어간 설정에서 "Block Size Threshcld" 값을 낮추면 정확도는 낮아지지만 유사한 색을 더 많이 인식할 수 있습니다. 아래 사진은 임계값이 20에서 인식되지 않던 노란공이 0으로 줄이자 인식되는 것을 보여줍니다.


3. 지우기

 학습버튼을 짧게 클릭하면 "Click again to Foget!" 이라고 나옵니다. 시간 내에 학습버튼을 짧게 누르면 학습한 내용이 지워집니다. 모든 학습 지우기는 이와 같습니다.^^ 

3.7. 태그 인식


태그를 감지하고 지정한 태그를 학습, 인식, 추적할 수 있습니다. 태그는 에이프릴 태그만 인식할 수 있습니다.

더 많은 에이프릴 태그를 다운로드하려면 여기를 클릭하세요.



1. 기능 선택 


 Tag Recognition을 선택합니다. 기능버튼을 길게 눌러 설정으로 들어가서 "다중학습"을 활성화 합니다. 저장 후 나옵니다.


2. 태그 인식

 아래 화면에 보이는 태그로 기능을 알아봅니다.


 1) 태그를 감지하면 화면의 흰색 프레임이 자동으로 태그가 선택됩니다.



 2) 하나의 태그를 선택되도록 한 뒤 "+" 기호를 가리키고 "학습버튼"을 누릅니다. 허스키렌즈가 현재 태그를 학습 중임을 나타내는 노란색 프레임에 "Tag:ID1"이라는 문구가 화면에 표시됩니다. 그런 다음 "학습 버튼"에서 손을 떼면 첫 번째 태그 학습이 완료됩니다.

 3) 다른 태그를 학습하려면 카운트다운이 끝나기 전에 '학습버튼'을 짧게 눌러줍니다. (카운트다운이 끝나면 학습종료)

 4) 새로운 태그를 학습하는 것을 반복합니다.


 
3. 지우기

 학습버튼을 짧게 클릭하면 "Click again to Foget!" 이라고 나옵니다. 시간 내에 학습버튼을 짧게 누르면 학습한 내용이 지워집니다. 모든 학습 지우기는 이와 같습니다.^^ 

3.8. 물체 분류


티처블머신을 오프라인으로 할 수 있다고 생각하시면 쉽습니다.

다양한 물체의 여러 사진을 학습한 다음 내장된 머신 러닝 알고리즘을 사용하여 학습합니다. 동일한 물체의 사진을 더 많이 학습할수록 더 정확하게 인식할 수 있습니다.


기본 설정은 여러 개체를 학습하는 것으로 작업자의 헬멧 착용 여부를 인식하는 것을 예로 들어 설명합니다.


1. 기능 선택

 Object Classification을 선택합니다. 기능버튼을 길게 눌러 설정으로 진입하여 "다중학습"을 활성화 합니다. 설정이 되면 저장 후 나옵니다.


2. 물체 인식

 학습 테스트용 이미지입니다.


 1) 큰 프레임을 왼쪽의 헬멧을 쓴 작업자를 가리키고 "학습버튼"을 길게 누르면 현재 학습 중임을 나타내는 노란색 프레임에 "Learning 16/30:ID1"이라는 문구가 화면에 표시됩니다. 거리와 각도를 조정하여 허스키렌즈가 다양한 거리와 각도에서 물체를 학습하도록 합니다. 그런 다음 '학습 버튼'에서 손을 떼면 학습이 완료됩니다.
 2) 새로운 학습하려면 카운트다운이 끝나기 전에 "학습버튼"을 짧게 눌러줍니다. (카운트다운이 끝나면 학습종료)
 3) 오른쪽 헬멧을 안 쓴 작업자를 가리킨 후 "학습버튼"을 길게 누르면 학습이 됩니다. (다른 물체를 학습하려면 반복)
 4) 학습된 물체는 "Object"로 표시되며  "ID1" → "Object: ID2" → "Object: ID3" ... 순서로 해당하는 프레임의 색상도 달라집니다.

 
3. 지우기

 학습버튼을 짧게 클릭하면 "Click again to Foget!" 이라고 나옵니다. 시간 내에 학습버튼을 짧게 누르면 학습한 내용이 지워집니다. 모든 학습 지우기는 이와 같습니다.^^ 

4. 다른 교구에 연동하기

4.1. 아두이노


허스키렌즈는 오프라인으로 이미지 분류를 할 수 있기때문에 다양한 피지컬 교구와 연동하여 많이 사용합니다.

특히, 무선으로 카메라가 연결되어야 하는 이동형 로봇이나, 아두이노, 마이크로비트와 같이 프로그램 업로드형 피지컬 교구에 매우 적합합니다.


사용에 대한 내용은 아주 간단합니다.

허스키렌즈로 학습한 뒤, 출력되는 결과는 ID0의 번호나 좌표로 표시되기 때문입니다. 


조건문과 함께 ID0 일때는, ID1 일때는... 이런식으로 사용하면 되기때문입니다.

아래는 아두이노 예시입니다. 빨간색 사각형 안의 내용만 수정하면 되겠지요^^



4.2. 마이크로비트


4.3. 코드위즈


4.4. 헥사보드


TOP