1. Trang chủ
  2. » Luận Văn - Báo Cáo

Ứng dụng trí tuệ nhân tạo để phát hiện và xác định số lá cây dưa chuột

118 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 118
Dung lượng 6,19 MB

Nội dung

HỌC VIỆN NÔNG NGHIỆP VIỆT NAM KHOA CƠ ĐIỆN TRẦN NGỌC LY ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI: ỨNG DỤNG TRÍ TUỆ NHÂN TẠO ĐỂ PHÁT HIỆN VÀ XÁC ĐỊNH SỐ LÁ CÂY DƯA CHUỘT Hà Nội – 2021 HỌC VIỆN NÔNG NGHIỆP VIỆT NAM KHOA CƠ ĐIỆN ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI: ỨNG DỤNG TRÍ TUỆ NHÂN TẠO ĐỂ PHÁT HIỆN VÀ XÁC ĐỊNH SỐ LÁ CÂY DƯA CHUỘT Giảng viên hướng dẫn : ThS NGÔ QUANG ƯỚC Sinh viên thực : TRẦN NGỌC LY Mã SV : 583167 Lớp : K58-HTĐ Chuyên ngành : KỸ THUẬT ĐIỆN – ĐIỆN TỬ Hà Nội – 2021 LỜI CẢM ƠN Để hồn thành tốt khóa luận tốt nghiệp trước tiên cho phép em xin gửi lời biết ơn sâu sắc đến Thầy giáo ThS NGÔ QUANG ƯỚC, em cảm ơn thầy tận tâm, nhiệt tình khơng quản ngại khó khăn, vất vả để quan tâm hướng dẫn em suốt trình thực tập khóa luận tốt nghiệp vừa qua Nhờ tâm huyết sinh viên Thầy mà em biết áp dụng thành thạo kiến thức học vào đề tài tốt nghiệp để chuẩn bị cho ngành nghề công việc sau trường,cảm ơn thầy ln giúp đỡ em suốt q trình nhận làm đồ án tốt nghiệp học thầy em xin ghi nhớ không ngừng trau dồi để phát triển thân phục vụ công việc,đất nước Đồng thời em gửi lời cảm ơn trân thành đến tồn thể q thầy Trường Học Viện Nơng nghiệp Việt Nam nói chung, thầy cô Khoa Cơ – Điện môn: Hệ Thống Điện nói riêng bỏ cơng sức truyền đạt lại kiến thức cho chúng em năm theo học trường Cuối chúng em chúc Thầy giáo ThS NGƠ QUANG ƯỚC q thầy Học Viện mạnh khỏe thành công để giảng dạy công tác tốt Chúc Thầy cô gia đình hạnh phúc Em xin chân thành cảm ơn! i MỤC LỤC LỜI CẢM ƠN i MỤC LỤC i DANH MỤC BẢNG iii DANH MỤC HÌNH iv MỞ ĐẦU CHƯƠNG TỔNG QUAN VỀ TRÍ TUỆ NHÂN TẠO 1.1 Trí tuệ nhân tạo (Tổng quan trí tuệ nhân tạo) 1.2.Các Phương Pháp trí tuệ nhân tạo 1.2.1 Tìm hiểu Máy học ( Machine Learning ) 1.2.2 Tìm hiểu Học Sâu (Deep Learning) 1.2.3 Mối quan hệ AI, Machine Learing DeepLearning 1.3 Thuật Toán CNN 1.3.1 Đề xuất phương án xử lý ảnh thuật toán học sâu CNN (Convolutional Neural Network) CHƯƠNG ỨNG DỤNG TRÍ TUỆ NHÂN TẠO TRONG NƠNG NGHIỆP VÀ CÁC THUẬT TOÁN NGHIÊN CỨU 18 2.1 Ứng dụng AI nông nghiệp: 18 2.2 Các thuật toán nghiên cứu: 19 2.2.1 Các thuật toán AI: 19 2.3 Giới thiệu Support Vector Machine (SVM) 25 2.4 Thuật toán faster R-CNN: 31 CHƯƠNG ỨNG DỤNG THUẬT TOÁN YOLO PHÁT HIỆN LÁ CÂY DƯA CHUỘT 38 3.1 Tìm hiểu mạng yolo(you only live once) 38 3.2 Mơi trường đào tạo mơ hình Yolo 46 3.2.1 google colab : 46 i 3.2.2 Xây dựng liệu xác định số dưa chuột 48 3.2.3 Gán nhãn: 48 3.2.4 Cách train yolo tiny v4: 52 3.3.Phương pháp ứng dụng phát số mã nguồn python 66 3.3.1 Gán nhãn 67 3.3.2 Các mã nguồn: 68 3.3.3 Ứng dụng đếm lá: 72 CHƯƠNG THỰC NGHIỆM TRÊN PHẦN CỨNG RASPBERRY 78 4.1 Tìm hiểu Raspberry Pi4 78 4.1.1 Module Camera Raspberry Pi 81 4.1.2 Hệ điều hành Raspberry Pi4 82 4.1.3 Kết nối với thiết bị ngoại vi 84 4.1.4.Liên kết phần cứng với laptop 86 4.1.5.Cài đặt số phần mềm Laptop để kết nối với Raspberry: 87 4.1.6 Cài đặt phần mềm VNC viewer Windows 90 4.2.Thiết lập camera 92 4.2.1Cài đặt phần mềm OpenCV giao diện raspberry 94 MỘT SỐ HÌNH ẢNH THỰC NGHIỆM PHẦN CỨNG 98 TÀI LIỆU THAM KHẢO 100 ii DANH MỤC BẢNG Bảng So sánh filter lớn nhỏ 14 Bảng Kết sau thực nghiệm 64 Bảng Kết sau thực nghiệm: 74 iii DANH MỤC HÌNH Hình Mối quan hệ AI, Machine Learning, DeepLearning Hình Cấu tạo neurel Hình Hình ảnh đầu vào biễu diễn ma trận 10 Hình Hình ảnh lớp mơ hình CNN 11 Hình Ma trận đầu vào ma trận đầu kernel 12 Hình Filter phá cạnh ma trận 13 Hình Đầu lọc áp dụng cho lớp trước 14 Hình Đệm hàng số xung quanh ma trận đầu vào 15 Hình Ma trận đầu sau pooling ma trận đầu vào 16 Hình 10 sơ đồ dịnh 20 Hình 11 Cơng thức bayes 21 Hình 12 Đồ thị hồi quy tuyến tính 22 Hình 13.Biểu diễn thuật tốn gom cụm 23 Hình 14.Các thành phần 24 Hình 15 Các thành phần độc lập 25 Hình 16 Hình ảnh vector phân lớp 26 Hình 17 Đường hyper -land 27 Hình 18 margin SVM 31 Hình 19 Các lớp yolo 38 Hình 20 Nhận diện vật thể 39 Hình 21 Các lớp phức tạp lớp kết nối 42 Hình 22 Sơ đồ nhận diện vật thể 43 Hình 23 Mã nguồn yolo 45 Hình 24.Giao diện mở colab 46 Hình 25 Thao tác mở mã nguồn yolo 47 Hình 26 Mở command prompt 49 iv Hình 27 Giao diện gán nhãn 49 Hình 28 Gán nhãn 50 Hình 29 Đánh tên lớp nhãn 50 Hình 30 Các lớp lưu 51 Hình 31 Mã Nguồn yolo-tiny v4 52 Hình 32.Mở mã nguồn Train 54 Hình 33 Chọn mã nguồn để train 54 Hình 34 Giao diện train liệu 55 Hình 35 Thư mục backup sau train 60 Hình 36 Đồ thị file chart 61 Hình 37 Độ xác nhận diện 63 Hình 38 Chạy lệnh CMD thư mục mã nguồn 72 Hình 39 Cửa sổ CMD 73 Hình 40 Mặt trước Raspberry Pi4 79 Hình 41 Sơ đồ phận Raspberry Pi 80 Hình 42 Một số ứng dụng raspberry Pi4 81 Hình 43 Mặt trước Module Camera Raspberry 81 Hình 44 Thẻ nhớ Micro SD 83 Hình 45 Hình ảnh đầu kết nối HDMI với hình 83 Hình 46 Bộ cấp nguồn cho điều khiển trung tâm 84 Hình 47 Sơ đồ cắm đầu kết nối để cài hệ điều hành 84 Hình 48 Hướng dẫn cài đặt hệ điều hành trung tâm 85 Hình 49 Giao diện sau cài đặt xong hệ điều hành trung tâm Raspberry Pi4 85 Hình 50 Cài đặt VNC Raspian 86 Hình 51.Gắn camera vào bo mạch raspberry 93 v MỞ ĐẦU Nông nghiệp từ lâu truyền thống nghành thiếu đất nước Việt Nam Trải qua hang nghìn năm phát triển từ sử dụng cơng cụ thơ sơ ngày máy móc khoa học đại phát triển gặt hái nhiều thành tựu Trong khơng thể kể đến ứng dụng trí tuệ nhân tạo phần mềm kỹ thuật Đề tài chọn với mục đích nghiên cứu tìm hiểu xử lý ảnh,trí tuệ nhân tạo từ áp dụng thực nghiệm để đo kích thước dưa chuột đồng thời nhận diện đếm số theo dõi phát triển ý nghĩa định tiếp cận khoa học kỹ thuật, cải thiện hiệu đồng thời giúp cho ta theo dõi nơng nghiệp mà tiết kiệm thời gian công sức làm vụ mùa CHƯƠNG TỔNG QUAN VỀ TRÍ TUỆ NHÂN TẠO 1.1 Trí tuệ nhân tạo (Tổng quan trí tuệ nhân tạo) Trong khoa học máy tính, trí tuệ nhân tạo hay AI ( Artificial Intelligence), đơi gọi trí thơng minh nhân tạo, trí thơng minh thể máy móc, trái ngược với trí thơng minh tự nhiên người thể Thơng thường, thuật ngữ "trí tuệ nhân tạo" thường sử dụng để mô tả máy móc (hoặc máy tính) bắt chước chức "nhận thức" mà người liên kết với tâm trí người, "học tập" "giải vấn đề" Alan Turing nhà toán học, logic học mật mã học người Anh, người cho cha đẻ ngành khoa học máy tính trí tuệ nhân tạo Ông biết đến rộng rãi với vai trò người giải mật mã Enigma, thứ mật mã quân Phát Xít Đức dùng để liên lạc Chiến tranh Thế giới thứ, tác giả Máy Turing Phép thử Turing, cống hiến quan trọng ngành Trí tuệ nhân tạo Vào năm 1955, John McCarthy, nhà khoa học máy tính khoa học nhận thức Mỹ lần đưa khái niệm Trí tuệ nhân tạo, mà theo có nghĩa môn khoa học kĩ thuật chế tạo máy thơng minh Một năm sau đó, ơng đứng tổ chức Hội nghị Dartmouth, hội nghị chủ đề Các chuyên gia đến từ nhiều trường đại học công ty khác Carnegie Mellon University, Massachusetts Institute of Technology IBM tham gia hội nghị Từ đó, khái niệm “Trí tuệ nhân tạo” sử dụng rộng rãi AI nói gần não người, người làm gì, hiểu ứng dụng AI vào thiết bị hay máy họ làm người • export WORKON_HOME=$HOME/.virtualenvs • source /usr/local/bin/virtualenvwrapper.sh • Bước : Lưu tệp hồ sơ bash bạn hoàn thành Để tạo mơi trường ảo Python, gõ lệnh này: • $ mkvirtualenv cv • Lệnh tạo môi trường ảo Python gọi cv Nếu bạn sử dụng Python 3, bạn tạo mơi trường ảo lệnh sau: • $ mkvirtualenv cv -p python3 • Bạn thấy (cv) thiết bị đầu cuối bạn Nếu bạn đóng thiết bị đầu cuối gọi thiết bị đầu cuối mới, bạn phải kích hoạt lại mơi trường ảo Python mình: • $ source ~/.profile • $ workon cv • Bước : Bây giờ, bạn sẵn sàng để xây dựng cài đặt OpenCV từ nguồn Sau nhân thư viện OpenCV, bạn xây dựng cách gõ lệnh sau: • $ cd ~/opencv • $ mkdir build • $ cd build • $ cmake -D CMAKE_BUILD_TYPE=RELEASE \ • -D CMAKE_INSTALL_PREFIX=/usr/local \ • -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \ • -D ENABLE_NEON=ON \ • -D ENABLE_VFPV3=ON \ • -D BUILD_TESTS=OFF \ • -D OPENCV_ENABLE_NONFREE=ON \ • -D INSTALL_PYTHON_EXAMPLES=OFF \ 96 • -D BUILD_EXAMPLES=OFF • Bước : Cài đặt thư viện OpenCV hệ thống nội bạn từ HĐH Raspbian: • $ make -j4 • $ sudo make install • $ sudo ldconfig • Bước : Khi hoàn thành, ta phải cài đặt cấu hình thư viện để Python truy cập thơng qua liên kết Python Sau danh sách bước lệnh để định cấu hình với Python 3.7: • $ ls /usr/local/lib/python3.4/site-packages/ • $ cd /usr/local/lib/python3.4/site-packages/ • $ sudo mv cv2.cpython-34m.so cv2.so • $ cd ~/.virtualenvs/cv/lib/python3.4/site-packages/ • $ ln -s /usr/local/lib/python3.4/site-packages/cv2.so cv2.so • Sau cài đặt xong ta kiểm tra lại cài đặt OpenCV cài đặt thành cơng thu hình sau: 97 MỘT SỐ HÌNH ẢNH THỰC NGHIỆM PHẦN CỨNG Camera thực nghiệm Khung máy di chuyển 98 Thiết bị raspberry Camera chụp 99 TÀI LIỆU THAM KHẢO [1] Ebook Python tiếng Việt siêu Võ Tuấn Duy [2] Lập Trình Cơ Bản PYTHON Tự Học Cho Người Mới Bắt ĐầuDũng lại lập trình https://www.youtube.com/watch?v=oFgg7K2tpfk [3] Object Detection YOLO v1 , v2, v3 https://medium.com/@venkatakrishna.jonnalagadda/object-detection-yolo-v1v2-v3-c3d5eca2312a [4] Tìm hiểu mơ hình YOLO cho phát vật - Từ YOLOv1 đến YOLOv5 https://aicurious.io/posts/tim-hieu-yolo-cho-phat-hien-vat-tu-v1-den-v5/ [5] Google Colab – Phịng thí nghiệm trí tuệ nhân tạo dành cho nhà phát triển AI Nhà phát triển AI https://cpc.vn/vi-vn/Tin-tuc-su-kien/Tin-tuc-chitiet/articleId/32085 [6] /github.com/ [7] /python.org/ [8] /raspberry.vn/ 100 Các mã nguồn [net] # Testing #batch=1 #subdivisions=1 # Training batch=64 subdivisions=16 width=416 height=416 channels=3 momentum=0.9 decay=0.0005 angle=0 saturation = 1.5 exposure = 1.5 hue=.1 learning_rate=0.00261 burn_in=1000 max_batches = 6000 policy=steps steps=4800,5400 scales=.1,.1 [convolutional] batch_normalize=1 filters=32 size=3 101 stride=2 pad=1 activation=leaky [convolutional] batch_normalize=1 filters=64 size=3 stride=2 pad=1 activation=leaky [convolutional] batch_normalize=1 filters=64 size=3 stride=1 pad=1 activation=leaky [route] layers=-1 groups=2 group_id=1 [convolutional] batch_normalize=1 filters=32 size=3 102 stride=1 pad=1 activation=leaky [convolutional] batch_normalize=1 filters=32 size=3 stride=1 pad=1 activation=leaky [route] layers = -1,-2 [convolutional] batch_normalize=1 filters=64 size=1 stride=1 pad=1 activation=leaky [route] layers = -6,-1 [maxpool] size=2 stride=2 103 [convolutional] batch_normalize=1 filters=128 size=3 stride=1 pad=1 activation=leaky [route] layers=-1 groups=2 group_id=1 [convolutional] batch_normalize=1 filters=64 size=3 stride=1 pad=1 activation=leaky [convolutional] batch_normalize=1 filters=64 size=3 stride=1 pad=1 activation=leaky 104 [route] layers = -1,-2 [convolutional] batch_normalize=1 filters=128 size=1 stride=1 pad=1 activation=leaky [route] layers = -6,-1 [maxpool] size=2 stride=2 [convolutional] batch_normalize=1 filters=256 size=3 stride=1 pad=1 activation=leaky [route] layers=-1 105 groups=2 group_id=1 [convolutional] batch_normalize=1 filters=128 size=3 stride=1 pad=1 activation=leaky [convolutional] batch_normalize=1 filters=128 size=3 stride=1 pad=1 activation=leaky [route] layers = -1,-2 [convolutional] batch_normalize=1 filters=256 size=1 stride=1 pad=1 activation=leaky 106 [route] layers = -6,-1 [maxpool] size=2 stride=2 [convolutional] batch_normalize=1 filters=512 size=3 stride=1 pad=1 activation=leaky ################################## [convolutional] batch_normalize=1 filters=256 size=1 stride=1 pad=1 activation=leaky [convolutional] batch_normalize=1 filters=512 107 size=3 stride=1 pad=1 activation=leaky [convolutional] size=1 stride=1 pad=1 filters=24 activation=linear [yolo] mask = 3,4,5 anchors = 10,14, 23,27, 37,58, 81,82, 135,169, 344,319 classes=3 num=6 jitter=.3 scale_x_y = 1.05 cls_normalizer=1.0 iou_normalizer=0.07 iou_loss=ciou ignore_thresh = truth_thresh = random=0 resize=1.5 nms_kind=greedynms beta_nms=0.6 108 [route] layers = -4 [convolutional] batch_normalize=1 filters=128 size=1 stride=1 pad=1 activation=leaky [upsample] stride=2 [route] layers = -1, 23 [convolutional] batch_normalize=1 filters=256 size=3 stride=1 pad=1 activation=leaky [convolutional] size=1 stride=1 pad=1 109 filters=24 activation=linear [yolo] mask = 1,2,3 anchors = 10,14, 23,27, 37,58, 81,82, 135,169, 344,319 classes=3 num=6 jitter=.3 scale_x_y = 1.05 cls_normalizer=1.0 iou_normalizer=0.07 iou_loss=ciou ignore_thresh = truth_thresh = random=0 resize=1.5 nms_kind=greedynms beta_nms=0.6 - Chú ý với dòng lệnh cần điều chỉnh cho phù hợp với liệu train: [yolo] mask = 1,2,3 anchors = 10,14, 23,27, 37,58, 81,82, 135,169, 344,319 classes=3 110

Ngày đăng: 06/07/2023, 22:31

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w