본문 바로가기

프로젝트 이야기

(10)
드론을 이용한 식물 이상 탐지 시스템 - DBwindow 구현 마지막 Widget인 DBwindow 구현에 관해 다루겠습니다. DBwindow는 See Datamap 버튼을 누르면 나타나는 Widget입니다. 위와 같이 구성되어 있으며 리스트에서 데이터가 저장된 날짜를 선택하여 See Datamap 버튼을 누르면 Mainwindow에 분석 결과가 출력됩니다. 코드 전문은 아래와 같이 구성되어 있습니다. class DBWindow(Ui_DBwindow): def __init__(self, w3): self.url = "" Ui_DBwindow.__init__(self) self.Dialog = w3 self.setupUi(self.Dialog) self.seeButton.clicked.connect(self.DataSee) self.delButton.clicked.c..
드론을 이용한 식물 이상 탐지 시스템 - Connectwindow 구현 이번에는 Data Receive 버튼을 클릭했을 시 실행되는 Connectwindow 구현에 대하여 포스팅 할 것입니다. Connectwindow는 위와 같이 구성되어 있습니다. 우선, 코드 전문입니다. class ConnectWindow(Ui_Connect): def __init__(self, w2): self.IP = "" self.Port = "" self.workingFlag = 0 self.successFlag = 0 self.ConnectThread = DataRecvThread() self.ConnectThread.connectState.connect(self.connectLog) Ui_Connect.__init__(self) self.Dialog = w2 self.setupUi(self.D..
드론을 이용한 식물 이상 탐지 시스템 - Mainwindow 구현 Mainwindow의 PyQt5 코드 구현에 대해 설명하도록 하겠습니다. 전체적인 Mainwindow의 모습입니다. 버튼 하나하나 코드를 어떻게 구현했는지 알아보도록 하겠습니다. from PyQt5 import QtCore, QtGui, QtWidgets # 위젯 클래스들 from PyQt5.QtWidgets import * # QtWidgets 내부의 함수들 from PyQt5.QtCore import QThread, pyqtSignal # 쓰레드를 이용하기 위해 포함 from ui.mainwindow_ui import Ui_Mainwindow # Mainwindow ui 코드 from ui.connectwindow_ui import Ui_Connect # Connectwindow ui 코드 from ..
드론을 이용한 식물 이상 탐지 시스템 - PyQt5 UI 만들기 이제 Qt Creator를 이용해 PyQt5 UI를 생성하는 방법을 알았으니 Qt Creator에서 모든 .ui파일을 생성하도록 합니다. 먼저 메인 윈도우입니다. 프로그램을 실행시키면 가장 먼저 실행되는 UI 입니다. 어떤 오브젝트를 이용해 만들었는지는 우측의 Class를 보시면 확인하실 수 있습니다. 로그가 표시될 창과 맵이 표시될 창은 QTextBrowser를 이용해 만들었습니다. 각 버튼은 QPushButton을 이용해 만들었습니다. Data Receive를 클릭했을 때 나타나는 connectwindow는 위와 같이 구성했습니다. QLabel을 이용해 IP, Port라는 레이블을 만들었고, 전송중 로그가 표시될 부분을 만들었습니다. QPlainTextEdit을 이용해 IP와 Port번호를 입력할 창..
드론을 이용한 식물 이상 탐지 시스템 - Qt UI 만들기 전 글에도 설명했다시피 PyQt5에 능숙하다면 코드를 이용해 모든 UI를 구현하는 것도 가능합니다. 하지만 코드로 모든 오브젝트를 배치하는 건 불편하기 때문에 Qt Creator를 이용하여 UI를 만든 후, PyQt5로 변환해주는 방법을 사용했습니다. Qt Creator는 Qt에서 제공하는 GUI 제작 플랫폼입니다. GUI 환경에서 UI를 만들고 코드를 제작하는 것이 가능합니다만 Qt는 기본적으로 C++로 제작되어 있기 때문에 Qt Creator에서 모두 구현하려면 C++코드를 이용해야 합니다. 저희는 파이썬 코드로 구현하기 위해 PyQt를 이용했는데, UI를 만드는 것은 Qt Creator로 만든 ui 파일을 변환해서 만드는 것이 가능합니다. 먼저 Qt Creator를 이용하기 위해 Qt를 설치합니다...
드론을 이용한 식물 이상 탐지 시스템 - PyQt5 설치 GUI는 Qt를 이용해 구현했습니다. Qt는 GUI 프로그램 개발에 널리 쓰이는 크로스 플랫폼 프레임워크입니다. Darknet을 이용했기 때문에 결과적으로 윈도우에서는 실행이 불가능하게 되었지만, 리눅스와 맥OS에서 모두 사용 가능하게 하기 위해서 Qt를 사용하도록 했습니다. 기본 언어로는 C++를 이용하지만, 저는 파이썬 코드로 구현하기 위해 PyQt5를 이용했습니다. PyQt5를 설치하는 방법은 간단합니다. pip를 이용해 설치해줄 수 있습니다. pip install PyQt5 조심할 점은 우분투를 이용해 설치할 경우 16.04 64bit 이상 버전에서만 pip를 이용해 설치가 가능합니다. 그 이하 버전을 이용할 경우에는 패키지를 직접 다운로드 받아 설치해 주어야 합니다. 설치가 완료되었으면 PyQt..
드론을 이용한 식물 이상 탐지 시스템 - GUI 설명 개발은 세 파트로 진행하였습니다. 1. DJI드론을 이용한 영상촬영, GPS정보 수집을 위한 안드로이드 제어 프로그램(최남기 학우, https://namki-learning.tistory.com/) 2. 데이터 수집과 Darknet 프레임워크를 이용한 YOLOv3 모델 학습(이정민 학우, https://jeongmin-lee.tistory.com/) 3. PyQt5를 이용한 GUI 인터페이스 구현 및 프로그램 제작, 각 개발 파트 머지 이 중 3번 파트를 제가 맡아서 진행했으며, 이에 관해 설명하려고 합니다. 최종적으로 제작된 GUI 프로그램입니다. 데이터 전송, 데이터 분석, 데이터 열람 세 가지 기능을 하도록 제작하였습니다. Cache Clear 버튼을 클릭할 경우 데이터 분석을 위해 저장하고 있는 ..
드론을 이용한 식물 이상 탐지 시스템 - 개발배경 딥러닝의 등장 이후, 이전까지 개발하기 어려웠던 분야들에 대한 개발이 활발하게 이루어지고 있습니다. 식물 이상 탐지 또한 그러한 분야 중 하나입니다. 2017년 이후로 잡초탐지, 질병탐지, 스트레스수치 탐지 등 농작물에 대한 다양한 연구가 이루어지고 있습니다. 이러한 연구들을 살펴보던 도중, 저희는 넓은 밭을 관리하는 데에 드론이 유용할 것이라는 점에 주목했고 드론을 이용해서 식물의 이상을 탐지할 수 있다면 농작물 관리에 매우 유용할 것이라 생각했습니다. 처음에는 식물의 이상을 탐지하게 되면 드론이 즉시 조치를 취할 수 있도록 제작하고 싶었지만 비용 문제로 저렴한 드론을 사용할 수 밖에 없었고, 드론에 다른 장비를 부착할 수 없기 때문에 이상을 탐지해서 관리하는 시스템을 제작하려고 생각하게 되었습니다. ..