블로그 이미지
pgmr이상현
Instagram:sh_lee77 머신비전, YOLO, 영상처리, Deep Learning, 딥러닝

calendar

1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

Notice

앞 포스팅에서 좌표를 서버로 보내는 것 까지는 성공을 하였습니다.

하지만 저희가 겪은 문제점으로는 Apache서버를 시작하고 서버인 localhost로 이동을하게되면, 서버에 올린 좌표값이들어있는 html파일의 목록이 보이게됩니다.

아래 이미지를 보겠습니다.

앞 포스팅에서 Bounding Box의 정중앙 좌표값을 서버로 받아오는데 성공을 했다고 했습니다. 좌표가 제대로 전달이 되었는데 무엇이 문제냐고 하실 수 있습니다.


위에 이미지의 주소를 보게되면 192.168.123.101에서 끝이아닌 뒤에 /position.html 경로가 더 있는 것을 알 수 있습니다. 경로가 더 있다는 것은 localhost에서 파일목록에있는 position.html을 열었다는 것 입니다.


이게 왜 문제가 되었냐면, Arduino에서 서버를 통해서 좌표값을 가져와야 하는데

Arduino에서 서버에 접속을 해서 파일목록에 있는 position.html을 직접적으로 열고가져올 수 있는 방법이 없기 때문에 문제가 되었습니다. 어떻게 가공을 통해서 Arduino에 바로 넘겨줄 수 있는방법이 없을까에 고민에 빠졌습니다.


그래서 해결한 방법이 바로 Root Directory를 변경 시킴으로써 localhost에 접속시에

바로 저 위에 보이는 이미지처럼 좌표값이 바로 보이게 하는 것 입니다.


방법은 다음과 같습니다.

Root Directory가 html Directory가 아닌 다른 Directory가 Root 일 경우에는

서버에서 파일의 목록이 보여집니다. 하지만 html Directory를 Root로 변경 시키면

localhost서버에서 접속시 바로 좌표값을 볼수가 있습니다.


자 그럼 지금부터 Root Directory변경을 시작하겠습니다.



1. etc디렉토리 안의 파일열기

sudo gedit /etc/apache2/apache2.conf

sudo gedit /etc/apache2/sites-available/000-default.conf


2. 수정하기

* apache2.conf *

<Directory /var/www>

...

...

</Directory>


* 000-default.conf *

DocumentRoot /var/www/html

위 내용에서  "/var/www"   "/var/www/html" 부분을 원하는 폴더의 경로로

지정하면 Root Directory가 됩니다. 저희 같은 경우는 html디렉토리를 끝으로

지정해 줌으로써, localhost에 접속시 바로 좌표값이 나오도록 했습니다.


이렇게 문제해결을 성공적으로 끝 맞췄습니다. 다음 포스팅 부터는

Arduino를 어떻게 사용했는지 Arduino에 관한 포스팅으로 찾아 뵙겠습니다.

그럼이만~~ 

posted by pgmr이상현

앞 포스팅에서 서버를 구축했으니

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_detections라는 함수가 보입니다.

이 안에 파일 입출력을 통해서 Bounding Box가 존재하게 되면

html파일이 생성되면서 구축해놓은 서버에 html파일이 올라가게 됩니다.

이 코드는 약 327 line인데 똑같은 void draw_detections함수 안 입니다.


strcmp를 사용하여, yolo에서 인식되는 야생동물의 class name이

inermis(고라니), wild boar(멧돼지)이면 index.html을 생성합니다.


그리고 Bounding Box의 left좌표와 right좌표의 가운데 지점 좌표를 구해줍니다.

이렇게 되면 서버의 index.html에는 야생동물의 Bounding Box의 정중앙 값이

보내집니다.  아래 이미지를 통해서 확인해 보겠습니다.

인식된 멧돼지 Bounding Box의 가운데 지점을 빨간색으로 표시를 했는데요

저렇게 정 중앙의 좌표값이 서버에 잘 전달되는 것을 확인할 수 있습니다.


여기서도 파일입출력을 하는데 위에서는 왜 파일입출력을 한거냐 라고 생각하시는

분들이 많으실겁니다. 아래에서 인식한 야생동물의 정보가 남아있기 때문에,

위에서 한번더 파일입출력을 함으로써 초기화 해준다는 개념으로 생각하시면 될 것 같습니다.


네 이번 포스팅에서는 YOLO Source의 수정을 통해서 좌표값을 계산하고,

그 좌표값을 http서버로 전송하는 포스팅을 했습니다. 다음 포스팅에서는

서버로 전송했을 때 문제점이 발생했었는데 그것에 대해서 포스팅을 해보도록

하겠습니다. 그럼이만~~

posted by pgmr이상현

Ubuntu에서 서버를 구축해 본적이 없는데

찾아보니 엄청 간단하게 구축이 가능했습니다.

LAMP(Linux Apache MySQL PHP)를 설치하면 됩니다.


서버를 구축하기 이전에 root 계정 및 암호설정을 미리하는 것이 좋습니다.


1. Apache 설치

  1. sudo apt-get update
  2. sudo apt-get upgrade

Apache설치가 아니더라도 항상 무언갈 설치하기전에 Package를 최신으로 update 및 upgrade를 해주는게 좋습니다. 설치 이후에도 마찬가지 입니다.


  1. sudo apt-get install apache2

이것으로 Apache설치는 끝났습니다. 

Apache가 제대로 설치가 됬는지 확인을 해보겠습니다.


인터넷 주소창을 하나 엽니다.

  1. http://localhost

'Apache2 Ubuntu Default Page'라는 메세지가 보이면 잘 설치한 것 입니다.


Apache명령어는 아래와 같습니다.

  1. service apache2 start
  2. service apache2 stop
  3. service apache2 reload

위 명령어로 apache서버의 시작과 종료를 할 수 있습니다.


2. MySQL 설치


  1. sudo apt-get install mysql-server

MySQL이 설치가 진행됩니다.

진행중에 중간에 MySQL의 비밀번호 설정화면이 나오게 됩니다.

비밀번호를 잘 설정을 하고 잊어버리지않게 조심합시다.


3. PHP 설치


PHP는 5버전과 7버전이 있는데 우리는 안전하게 5.6버전을 택하였습니다.

PHP설치에 앞서 Repository를 먼저 설치합니다.

  1. sudo add-apt-repository ppa:ondrei/php
  2. sudo apt-get update


이제 PHP 5.6버전을 설치하겠습니다.

  1. sudo apt-get install php5.6 php5.6-common
  2. sudo apt-get install php4.6-mysql php5.6-curl php5.6-xml php5.6-zip php5.6-gd php5.6-mbstring php5.6-mcrypt

PHP설치가 끝났으면, 설치가 정상적으로 되었는지 확인해 보겠습니다.


먼저 Apache의 Root디렉토리로 이동합니다.

초기의 Root디렉토리는 /var/www/html/ 입니다.

  1. cd/var/www/html/
  2. sudo sh info.php

스크립트 창이 열리면 아래의 코드를 입력한 후 현재의 폴더에 저장합니다.

echo "<?php phpinfo(); ?>"

이후에 PHP설치가 완전히 마무리 되었는지 확인해 보겠습니다.


http://localhost/info.php

PHP Version 5.6 메세지가 나오면 설치가 완료된 것 입니다.

localhost대신에 자신의 ip주소를 입력해도 서버 홈페이지에 접속할 수 있습니다.


여기까지 서버구축 포스팅을 마무리 하도록 하겠습니다.

posted by pgmr이상현
prev 1 ··· 3 4 5 6 7 8 9 next