본문 바로가기
AI교육/앱인벤터

23. 앱인벤터 사물 인식 AI 앱만들기(Object Recognition)

by 조크리 2023. 9. 18.
반응형

 

 

 

오늘 만들어 볼 앱은 사물 분류(Object Recognition) AI 앱입니다. 

앱인벤터에 있는 확장 기능(Extensions) 중

 

Object Recognition(사물인식) 을 활용해 볼 예정입니다. 

https://mit-cml.github.io/extensions/

 

MIT App Inventor Extensions

Supported: Name Description Author Version Download .aix File Source Code BluetoothLE Adds as Bluetooth Low Energy functionality to your applications. See BluetoothLE Documentation and Resources for more information. MIT App Inventor 20230728 BluetoothLE.a

mit-cml.github.io

 

 

 
 


목차

     

    1. 앱 화면 및 기능 구상하기

     

    사물인식 AI 앱의 기능은 매우 간단합니다.

    카메라로 인식하고 싶은 사물을 사진찍으면

    AI가 어떤 사물인지 알려줍니다.

     

     

     

    2. 앱 화면 만들기

     

    먼저 디자이너화면을 살펴볼까요?

     

    버튼1은 '사진찍기'로 텍스트를 바꿔주었습니다.

    레이블1은 '사물인식결과'로 텍스트를 바꿔주었습니다.

    레이블1에 사물인식 결과가 뜨게 됩니다.

    웹뷰어1은 카메라 화면이 뜨게 됩니다.

    음성변환과 Translator(번역)기능도 넣어줍니다. 음성변환과 번역은 보이지 않는 컴포넌트로 들어갑니다.

     

     

    사물 인식 AI 확장 기능 불러오기

     

    1) 다음은 사물인식 AI 확장기능을 불러오는 단계입니다. 

    도움말에서 확장 기능을 클릭합니다.

     

    2) LookExtension.aix 파일을 다운로드 받습니다.

     

    3) 앱인벤터에서 '확장기능 추가하기'를 클릭한 뒤, LookExtension.aix 파일을 업로드합니다.

     

     

    1분 정도 기다리면 아래처럼 확장기능에 Look이 뜨게 됩니다.

    이제 화면을 꾸며보겠습니다.

    Look을 클릭하고 WebViewer를 웹뷰어1로 바꾸어 줍니다. 

    WebViewer를 웹뷰어1로 설정해 놓지 않으면 카메라가 비추는 화면이 뜨지 않으니

    꼭!! 설정해주어야 합니다. 

     

     

    3. 코딩하기

     

    이제 코딩을 해보겠습니다.

    우선 버튼1(사진찍기)를 클릭했을 때

    카메라로 찍은 사진 데이터를 분류하라(Classify)고 명령을 내립니다. 

     

    그리고 분류가 다 되었을때를 코딩해줍니다.

    분류가 완료되었다면, 레이블1에 결과 값을 넣어주면 됩니다. 

     

    결과 값은 리스트의 형태로 나타나게 됩니다. 

    리스트는 항목들의 모음으로 이해하면 됩니다.

    아래 그림처럼 

    [['keyboard', '0.95421'], [remonte control', '0.05177'].....]

    처럼 나오는데요.

    키보드가 95.4%의 확률로 1위를 차지했고

    리모컨이 51.7%의 확률로 2위를 차지했습니다. 

     

    해당 사진이 95.4%정도의 확률로 키보드로 인식된 것이고

    51.7%정도의 확률로 리모컨으로 인식된 것이죠.

    3위부터는 1%도 안되는 확률로 인식된 것이기에 큰 의미가 없습니다. 

     

    앱 화면에 사물인식 결과를 나타낼 때에는 

    1위를 차지한 keyboard만 나타내면 되겠죠!

    그럼 이제 결과 리스트에서 첫 번째 항목만 불러오면 됩니다. 

    아래 그림처럼

    레이블1의 텍스트 값을 '결과 리스트의 1번째 위치 항목 선택하기'로 만들어 주면 됩니다!!!

     

     

    그럼 결과를 살펴볼까요?

    연결-AI 컴패니언을 키고, 안드로이드 핸드폰에서 QR코드를 인식한 뒤 

    시뮬레이션을 시켜봅니다.

     

    이렇게 mouse, 0.78491 로 여러 항목 중 첫 번째 항목만 잘 출력이 되었죠!!

    4. 업그레이드 하기(번역기능, 음성변환TTS 기능)

     

     

    만약 여기서 번역을 한 뒤, 음성 변환까지 추가한다면 어떨까요?

    번역된 내용을 AI 보이스가 말해주는 것이죠. 

     

    그럼 일단 버튼 1을 클릭했을 때

    사물 인식를 해라 까지는 코드가 같습니다.

     

    사물인식이 완료된 후가 코드가 달라집니다.

    사물인식이 완료되면

    그 결과를 번역을 합니다.

    번역 언어 코드는 영어에서 한국어이기 때문에 en-ko라고 적어줍니다.

    그리고 번역할 텍스트는 기존 리스트에서 항목1이고, 그 항목1 중에서도 항목1입니다.

     

    즉 ['mouse', '0.78491'] 이렇게 나올때도 항목이 mouse와 0.78491 두개가 있게 되는데

    그 두개의 항목 중에서 첫 번째 항목을 번역하겠다는 이야기입니다.

    숫자는 번역할 필요가 없기에, 앞에 있는 문자 항목만 번역한다는 것이지요!

     

    그리고 번역이 완료되면

    레이블1의 텍스트 값은 번역된 값으로 가져옵니다.

    이 값을 음성변환으로 말해주면 되겠죠!

     

     

     

    5. 테스트하기

     

    마지막 테스트입니다.

     

     

     

    반응형