728x90
반응형

Deep Learning(YOLO)기반의 Smart Scarecrow 15

[15] Deep Learning기반의 Smart Scarecrow 마무리!!

물총을 회전시키기 위해서는 지지대가 필요하다고 생각했습니다. 그래서 공방에 의뢰하여 다음과 같이 제작하게 되었습니다.위와같이 Servomotor를 안에 넣을 수 있게 모양을 따서 만들게 되었습니다.안에 Servomotor를 넣게되면네 이쁘게 Servomotor가 들어가는 것을 알 수 있습니다. 그럼 이제 Servomotor가 회전하는 영상을 보겠습니다.네 위와같이 회전이 잘 되는것을 확인할 수 있습니다. 그러면 이제는 물총에서 Trigger역할을 하는 Servomotor를 달아보겠습니다.네 제가 열중하면서 Trigger용 Servomotor를 달고 있습니다. 다 되었으면 회전용 Servomotor위에 물총을 달아보겠습니다. 네 이제야 좀 짜세가 나오는 것 같습니다. 저만 그렇게 느끼는 건가요?ㅎㅎ Ser..

[14] 아두이노 서보모터제어 (물총 사용하기)

앞 포스팅에서 서버연결까지 맞추었습니다. 이제는 아두이노에서도 Bounding Box의 좌표를 가져올 수 있습니다.그럼이제 그 좌표를 물총이 180도 회전을 하면서 물을 발사할 수 있어야 합니다. 우리는 Servomotor를 2개 준비했습니다.한개는 물총아래서 돌면서 물총의 회전을 담당하고, 한개는 손잡이 부분에서Trigger역할을 합니다. 1. Servo motor연결하기 사진출처 [피지컬 컴퓨팅 교육] 위 이미지와 같이 2개의 서보모터를 제어할 수 있습니다.그래서 우리도 위와같이 꽂아 보았습니다.7번과 9번핀에 서보모터를 연결하였습니다.하나는 회전 하나는 발사를 담당하게 됩니다. Servomotor의 제어또한 오픈소스를 이용해서 수정을 하면 되겠습니다. 2. Servo motor코딩하기위와 같이 Se..

[13] Arduino Http서버 연결2 Ethernet Shield편

앞 포스팅에서 JSN270 Wifi Shield의 문제점에 대해 포스팅했고 이번 포스팅은 그로인해 사용하게된 Ethernet Shield를 이용한 Http서버 연결에 대해포스팅을 해보도록 하겠습니다. GO GO!! 먼저 아래 이미지와같이 Uno보드에 Ethernet Shield를 연결하고USB와 LAN선을 연결해 줍니다. 불빛이 잘 들어오네요.Arduino는 오픈소스가 잘 되어있어, 사용하기가 무척 좋은 것 같습니다.예제 -> Ethernet에서 WebClient와 WebServer예제를 사용합니다. Web Client/* Web client This sketch connects to a website (http://www.google.com) using an Arduino Wiznet Ethernet ..

[12] Arduino Http서버 연결1(JSN270 WiFi Shield) 문제점

서버에서의 좌표를 받아 물총을 제어하기 위해선 먼저 서버연결을 해야합니다. 서버를 연결하기 위해서는 WiFi Shield 또는 Ethernet Shield가 필요합니다. 우리는 먼저 WiFi Shield를 사용해보기로 했습니다.JSN270이라는 쉴드를 사용해보기로 했습니다.JSN270 WiFi Shield 는 위와같이 생겼다. 처음 써봐서 어떻게 쓰는건지 몰라서두리번 두리번 했습니다.쓰는 방법을 알아냈는데, 위와같이 Uno보드 위에 고대로 겹쳐서 끼워주시면 됩니다. JSN270 WiFi Shield는 검색해보니까 다른 Shield들 하고는 서버연결하는 코드가,조금 상이 했습니다. JMP SYSTEMS라는 회사에서 만든건데 예제소스는 이 회사홈페이지에서 받을수 있습니다. SITE

[11] 물총 제어를 위한 Arduino 환경설정 하기

이전 포스팅 까지 YOLO에서의 인식되는,야생동물Bounding Box의 가운데 좌표값을 서버로 보내주는 것 까지 포스팅 했습니다. 그럼 이제 그 좌표를 Arduino에서 받아오고 물총을 동작시켜야 하는데 그 이전에 Arduino환경부터 설정해 보겠습니다. 1. Arduino IDE 설치하기Arduino IDE는 검색창에 Arduino검색만으로 손쉽게 사이트에 접속할 수 있습니다. 검색마저 귀찮으실 까봐 Arduino site 보드 -> (본인의 보드) 본인은 Uno r3보드를 사용해서 Uno를 선택했습니다.보드를 선택했다면 바로 아래 포트에서 자신의 포트번호를 선택하면 되겠습니다. 자그러면 Arduino환경설정이 모두 끝났습니다. 다음 포스팅은 Arduino와 서버연결에 대해 포스팅 하겠습니다.

[10] Apache2 Root Directory 변경으로 문제해결

앞 포스팅에서 좌표를 서버로 보내는 것 까지는 성공을 하였습니다.하지만 저희가 겪은 문제점으로는 Apache서버를 시작하고 서버인 localhost로 이동을하게되면, 서버에 올린 좌표값이들어있는 html파일의 목록이 보이게됩니다.아래 이미지를 보겠습니다.앞 포스팅에서 Bounding Box의 정중앙 좌표값을 서버로 받아오는데 성공을 했다고 했습니다. 좌표가 제대로 전달이 되었는데 무엇이 문제냐고 하실 수 있습니다. 위에 이미지의 주소를 보게되면 192.168.123.101에서 끝이아닌 뒤에 /position.html 경로가 더 있는 것을 알 수 있습니다. 경로가 더 있다는 것은 localhost에서 파일목록에있는 position.html을 열었다는 것 입니다. 이게 왜 문제가 되었냐면, Arduino에서..

[9] YOLO Bounding Box좌표를 서버로 전송하기

앞 포스팅에서 서버를 구축했으니 YOLO의 Bounding Box의 좌표를 서버로 보내는 포스팅을 하겠습니다. [5]포스팅에서 YOLO의 분석을 다루었는데요.darknet디렉토리 안에 src디렉토리가 있습니다. 이 안에는 여러 source code들이 있었지만 우리가 사용할 source code는image.c입니다. image.c는 Bounding Box에 관한 좌표와 object에 Bounding Box를그리는 c코드들이 존재합니다. 여기서 code수정을 통해서 Bounding Box의 좌표를따오겠습니다.image.c 코드를 캡쳐한 이미지입니다. 코드가 작아서 잘 안보일 수 있기 때문에클릭하여 확대해서 보는걸 추천해 드립니다. image.c 코드에서 약 238번째 line에 void draw_detec..

[8] Ubuntu에서 Http서버 구축하기 (LAMP)

Ubuntu에서 서버를 구축해 본적이 없는데찾아보니 엄청 간단하게 구축이 가능했습니다.LAMP(Linux Apache MySQL PHP)를 설치하면 됩니다. 서버를 구축하기 이전에 root 계정 및 암호설정을 미리하는 것이 좋습니다. 1. Apache 설치sudo apt-get updatesudo apt-get upgrade Apache설치가 아니더라도 항상 무언갈 설치하기전에 Package를 최신으로 update 및 upgrade를 해주는게 좋습니다. 설치 이후에도 마찬가지 입니다. sudo apt-get install apache2 이것으로 Apache설치는 끝났습니다. Apache가 제대로 설치가 됬는지 확인을 해보겠습니다. 인터넷 주소창을 하나 엽니다.http://localhost 'Apache2..

[7] Deep Learning기반의 Smart Scarecrow 설계하기

앞 포스팅에서 YOLO의 데이터 학습까지 해서 야생동물(고라니, 멧돼지)를인식하는 것 까지 끝 맞췄습니다. 이제는 인식한 야생동물을 물총으로 추적하면서 쫓아내는 일만이 남았습니다.우리는 물총을 제어하기 위해서 아두이노(Arduino)를 사용하기로 했습니다. 설계한 구성도를 한번 보도록 하겠습니다.구성도를 설명하자면 Cam은 물총 위에 있으며, 야생동물이 인식되기까지 계속하여 물총과 함께 물총 밑에있는 servomotor를사용, 180도 회전합니다. YOLO로 야생동물이 인식이 되면, Bounding Box의 정 중앙 좌표값을 계산해,Http서버로 전송하게 됩니다. 그럼 Arduino는 Http서버에서 좌표를 받아와 야생동물의 위치로 물총을위치시키고, 손잡이 방아쇠부분에 있는 360도 servomotor를..

[6] YOLO 데이터(이미지) 학습

지금까지 많은 Deep Learning Detection Algorithm중에서 왜 YOLO를 사용해야 하는지, 또 YOLO를 사용하기 위해선 어떠한 환경설정을 해야하는지, 그리고 YOLO의 예제사용 및 YOLO의 분석까지 포스팅 했습니다. 이제는 직접 데이터학습을 어떻게 시키는지에 대해 포스팅 해보도록 하겠습니다. [1]번 포스팅을 보면 우리는 야생동물로 인한 피해를 줄이기 위해, Deep Learning(YOLO)기반의 Smart Scarecrow를 개발하기로 했다고 했습니다. 그렇기 때문에 우리는 야생동물인 고라니333장 멧돼지222장 그리고 야생동물은 아니지만 강아지222장을 학습시켰습니다. 이미지 학습에 앞서 이미지파일은 확장자가 모두 JPG이여야 합니다. 그렇기 때문에 데이터들을 수집하시고, ..

728x90
반응형