Project Log 8

[Toy Project]Tiger-Bot 만들기 - Face Recognition

사람 얼굴을 사람 얼굴로 인식하고 락온이 되는 것까진 좋은데 찾다보니 생각보다 간단하게 누가 누군지 인식이 가능하도록 셋업이 가능하겠지 싶다. 파이썬 모듈로 나와있는 face_recognition을 사용하면 되는 것 같다. 우선 최소한의 코드만 작성 후 내 셀피(...)를 저장한 폴더 경로에서 이미지들을 가져다가 face_recognition의 compare_faces 함수를 사용하여 웹캠이 비추는 화면에서 저장 경로의 얼굴 이미지들과 유사한 얼굴을 찾아준다. 그렇게 찾은 얼굴의 중심점을 기준으로 사각형을 그어주고 아래에는 이름을 띄워주었다. 잘 동작하는 것을 확인 후 기존 face tracking 파이썬 코드와 integrate 해줬다.  import cv2import numpy as npimport ..

[Toy Project]Tiger-Bot 만들기 - Talking [1]

얼굴을 따라서 머리를 요리조리 움직이는게 귀엽지만 뭔가 아쉽다.  서보모터가 하나 남아서 꼬리도 움직여줄까 싶긴한데 그건 나중에 기회가 되면 해보는걸로하고,  웹캠에 마이크가 붙어있는걸 보고 음성에 음성으로 답변하는 기능을 추가해봐야겠다는 생각이 들었다.  로직은 간단하게 될 듯 하다.  1. 소리를 녹음해주는 함수를 선언하고2. OpenAI의 API를 사용해서 Whisper 모듈로 녹음된 소리를 Text로 바꿔주는 함수 선언. Whisper는 제법 인식률이 높은 speech-to-text 모듈이라 실사용에 편할 것으로 추정3. 역시 OpenAI의 GPT 모듈을 사용해서 Text를 매개변수로 받으면 GPT의 답변을 return하는 함수 선언.4. Text를 음성으로 소리내주는 함수 선언.5. 1~2를 반..

[Toy Project]Tiger-Bot 만들기 - 몸체

기관부와 소프트웨어 정상 작동이 확인되었으니 몸체를 손봐야할 차례다. 대충 만들어본 뼈대를 인형의 몸에 맞게 좀 더 바꾸고 무엇보다 머리와 몸통의 연결부에 위화감이 없어야하면서도 웹캠이 과하게 아래나 위를 비추면 안된다. 그렇게해서 최종적으로 만들어진 몸체는 이렇다.  머리에서 오른쪽 눈을 떼어내고 웹캠 렌즈부를 눈 자리로 빼낸 후에 바느질하여 연결시켜줬다. 뼈대의 움직임에 따라 머리 전체가 움직이도록 머리 뼈대의 일부를 인형머리와 바느질해 결합해주었다.  기존에 열어뒀던 뒷통수는 바느질해서 닫아주였다.몸통 뼈대를 인형 몸 속에 넣고 머리를 결합했다.   잘 움직여준다. 아쉬운건 뼈대를 넣고나니 몸통 속에 아두이노를 넣을 공간이 나오지 않는다. 아예 밖으로 빼둬야할 듯 하다.

[Toy Project]Tiger-Bot 만들기 - 코드

이제 파이썬과 아두이노 코딩을 해야한다.  처음에는 https://projecthub.arduino.cc/Little_french_kev/face-tracking-camera-f391e1 여기 있는 코드를 사용했었으나 쓰다보니 아두이노-PC간 통신 문제가 발생하였는데 해결하지 못하여 다른 사람의 코드를 가져다가 쓰기로했다.  https://www.hackster.io/shubhamsantosh99/face-tracker-using-opencv-and-arduino-55412e Face Tracker Using OpenCV and ArduinoTrack your face using OpenCV's facial recognition. By Shubham Santosh.www.hackster.io결국 이 분의..

[Toy Project]Tiger-Bot 만들기 - 케이블링

가장 신경쓰이는 케이블링부터 해보았다. 케이블링을 잘 모르기에 온라인 사례를 참고했다.(https://projecthub.arduino.cc/Little_french_kev/face-tracking-camera-f391e1)먼저 기성 9볼트 어댑터에서 전원을 받기에 9볼트 잭의 양극과 음극을 5볼트 레귤레이터로 연결시켜준다. 양극은 따로 빼서 아두이노 기판으로.음극 또한 빼서 서보모터 두개와 아두이노로 각각 연결시켜보내줬으며 레귤레이터의 다른 다리는 서보모터 두개에 연결시켜 전원을 주었다. 직접 아두이노에 장착하는 것보다는 이렇게 별도의 전원을 연결하는 것이 안정적인 전원 수급이 가능할 듯 하다. 아두이노의 신호선 두개를 빼서 서보에 연결하면 완료. 이후 레고 테크닉 부속을 이용해 대략적인 몸체를 만들고..

[Toy Project] Tiger-Bot 만들기 - 구상

개인적으로 공부하던 것도 슬슬 흥미가 떨어지고 권태로워지는 듯 하다. 마냥 놀기보단 그래도 최소한의 생산적인걸 하고 싶고..기분전환 삼아 토이프로잭트를 하나 해야지 싶다.  옛날부터 건들어보고 싶던 소형기판 베이스로 임베디드 봇을 만들어볼까한다. 라즈베리파이 정도도 말고 아두이노로 간단하게. 마침 부서 동료가 어디선가 아기호랑이 인형을 얻어왔는데 빈자리에 굴러다니고 있어서 내가 가져가겠다고했다. 웹캠으로 얼굴을 인식해서 머리를 움직여서 트래킹하면 재밌겠지 싶다.   아두이노에 업로드할 코드는 온라인에서 구했다.  아두이노 코딩은 제대로 안해봐서 완전히는 파악이 아직 안되지만 기본적인 기능은; - 아두이노가 연결된 PC와 소통하며 인식된 안면의 좌표를 받아 팬서보와 틸트서보를 움직임- 서보의 움직임 값을 ..