Mục lục:
- Bước 1: Ý tưởng cơ bản và các phần bắt buộc
- Bước 2: Cài đặt Mô-đun OpenCV !
- Bước 3: In Giá gắn máy ảnh
- Bước 4: Hoàn thiện Giá gắn máy ảnh
- Bước 5: Mô hình học máy được đào tạo
- Bước 6: Mã tạo nên tất cả !
- Bước 7: Cơ chế mở hộp
- Bước 8: Làm Hộp theo Chủ đề Harry Potter
Video: Đũa phép Harry Potter làm việc thực sự bằng cách sử dụng thị giác máy tính: 8 bước (có hình ảnh)
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
"Bất kỳ công nghệ tiên tiến đầy đủ nào cũng không thể phân biệt được với ma thuật" - Arthur C. Clarke
Vài tháng trước, anh trai tôi đã đến thăm Nhật Bản và có trải nghiệm phù thủy thực sự trong Thế giới phù thủy của Harry Potter tại Universal Studios được thực hiện nhờ công nghệ Computer Vision.
Tại Thế giới Phù thủy của Harry Potter ở Universal Studios, khách du lịch có thể thực hiện "phép thuật thực sự" tại một số địa điểm nhất định (nơi lắp đặt hệ thống ghi hình chuyển động) bằng cách sử dụng đũa phép được chế tạo đặc biệt với các hạt phản chiếu ở đầu. Bạn có thể mua những cây đũa phép này từ Cửa hàng của Ollivander thật, giống hệt như cây đũa phép trong Phim Harry Potter nhưng hãy nhớ: "Đó là cây đũa phép chọn thầy phù thủy": P
Tại một số địa điểm nhất định nếu người đó thực hiện một cử chỉ cụ thể bằng đũa phép, hệ thống chụp chuyển động sẽ nhận dạng cử chỉ đó và tất cả các cử chỉ tương ứng với một câu thần chú nhất định gây ra các hoạt động nhất định ở khu vực xung quanh như bật đài phun nước, v.v.
Vì vậy, trong phần Có thể hướng dẫn này, tôi sẽ chỉ cho bạn cách tạo một hệ thống chụp chuyển động hiệu quả và rẻ tiền tại nhà để thực hiện "phép thuật thực sự" bằng cách mở hộp bằng cách quẹt đũa phép: D chỉ bằng một Máy ảnh nhìn đêm bình thường, một số thiết bị điện tử, và một số mã python bằng cách sử dụng thư viện OpenCV Computer Vision và Machine Learning !!!
Bước 1: Ý tưởng cơ bản và các phần bắt buộc
Những cây đũa phép được mua từ Thế giới Phù thủy của Harry Potter ở Universal Studios, có một hạt phản xạ ở đầu của chúng. Những hạt phản phản xạ đó phản chiếu một lượng lớn ánh sáng hồng ngoại được phát ra bởi máy ảnh trong hệ thống chụp chuyển động. như một đốm sáng có thể dễ dàng bị cô lập trong luồng video và được theo dõi để nhận ra mẫu do người đó vẽ và thực hiện hành động cần thiết. Tất cả quá trình xử lý này diễn ra trong thời gian thực và sử dụng Thị giác máy tính và Học máy.
Một máy ảnh Tầm nhìn ban đêm đơn giản có thể được sử dụng làm máy ảnh của chúng tôi để ghi lại chuyển động vì chúng cũng phát ra ánh sáng hồng ngoại mà con người không nhìn thấy nhưng có thể được nhìn thấy rõ ràng bằng máy ảnh không có Bộ lọc Hồng ngoại. Vì vậy, luồng video từ máy ảnh được đưa vào một raspberry pi có chương trình python chạy OpenCV được sử dụng để phát hiện, cô lập và theo dõi đầu cây đũa phép. Sau đó, chúng tôi sử dụng thuật toán SVM (Máy vector đơn giản) của Machine Learning để nhận ra mẫu được vẽ và theo đó điều khiển các GPIO của raspberry pi để thực hiện một số hoạt động.
Vật liệu cần thiết:
1) Một Raspberry Pi 3 kiểu B và các phụ kiện cần thiết như bàn phím và chuột
2) Mô-đun máy ảnh Raspberry Pi NoIR (Không có hồng ngoại)
3) Đũa phép Harry Potter có phản xạ ngược ở đầu: Đừng lo lắng nếu bạn không có. Bất cứ thứ gì có bộ phản xạ ngược đều có thể được sử dụng. Vì vậy, bạn có thể sử dụng bất kỳ cây gậy giống như cây đũa phép nào và dán băng keo, sơn hoặc hạt phản xạ vào đầu và nó sẽ hoạt động như trong video của William Osman: Xem Video
4) 10 đèn LED hồng ngoại
5) Một máy in 3D và dây tóc PLA do bạn lựa chọn
6) Bộ chuyển đổi tường 12V - 1A và giắc cắm DC
7) Một động cơ servo
8) Một chiếc hộp cũ và một tiếng nói từ bánh xe của một chu kỳ
9) Súng bắn keo nóng
10) Bản in một số logo và hình ảnh liên quan đến Harry Potter trên tờ giấy bóng
11) Tấm nhung màu xanh lá cây và màu vàng.
LƯU Ý: Tôi cũng đã thử sử dụng một webcam thông thường cũ để nhìn ban đêm bằng cách loại bỏ Bộ lọc hồng ngoại của nó nhưng cuối cùng làm hỏng / dịch chuyển ống kính của nó, điều này ảnh hưởng rất nhiều đến chất lượng video và tôi không thể sử dụng nó. Nhưng nếu bạn muốn thử, bạn có thể xem qua Hướng dẫn tuyệt vời này Nhấp vào đây
Bước 2: Cài đặt Mô-đun OpenCV !
Bây giờ là bước đầu tiên và có lẽ là bước dài nhất của toàn bộ dự án này: Cài đặt và xây dựng mô-đun OpenCV trong Raspberry Pi của bạn.
Việc cài đặt các phụ thuộc cho mô-đun OpenCV không mất nhiều thời gian nhưng quá trình xây dựng có thể mất đến 2 đến 3 giờ !! Vì vậy, thắt dây an toàn !!:P
Có rất nhiều hướng dẫn trực tuyến mà bạn có thể làm theo để cài đặt mô-đun OpenCV 4.1.0. Đây là liên kết của một trong những tôi đã theo dõi: Nhấp vào đây
LƯU Ý: Tôi thực sự khuyên bạn nên cài đặt mô-đun OpenCV trong môi trường ảo như được hiển thị trong hướng dẫn vì nó sẽ ngăn chặn các loại xung đột có thể xảy ra do cài đặt các phần phụ thuộc của các mô-đun khác nhau hoặc trong khi làm việc với các phiên bản python khác nhau.
Bước 3: In Giá gắn máy ảnh
NoIR picamera không có bộ lọc hồng ngoại, do đó có thể được sử dụng như một camera quan sát ban đêm nhưng nó vẫn thiếu nguồn sáng hồng ngoại. Tất cả các camera quan sát ban đêm đều có nguồn sáng hồng ngoại của riêng chúng, phát ra các tia hồng ngoại trong bóng tối không nhìn thấy bằng mắt thường nhưng các tia này có thể được nhìn thấy bởi camera mà không có bộ lọc hồng ngoại sau khi bị phản xạ từ bất kỳ vật thể nào.
Vì vậy, về cơ bản chúng ta cần Nguồn sáng hồng ngoại và thứ gì đó để gắn máy ảnh vào. Đối với điều này, tôi đã thiết kế một mô hình 3D đơn giản của một đối tượng mà trên đó chúng ta có thể gắn máy ảnh vào đó chúng ta sẽ được bao quanh bởi 10 đèn LED hồng ngoại trong một vòng tròn. Mô hình được tạo bằng SketchUp và in bằng Black PLA trong khoảng 40 phút.
Bước 4: Hoàn thiện Giá gắn máy ảnh
Sau khi in mô hình, lần đầu tiên tôi chà nhám nó bằng giấy cát 80 grit và sau đó bắt đầu đặt các đèn LED IR vào các lỗ của chúng theo sơ đồ đã cho ở trên.
Tôi cố định các đèn led vào vị trí của chúng bằng một số keo nóng và sau đó nối các dây dẫn âm và dương của hai led liên tiếp với nhau và sau đó hàn chúng để tạo ra một kết nối nối tiếp của các led.
Dây dẫn dương của một dây dẫn và dây dẫn âm của dây dẫn bên cạnh nó ở phía dưới không được hàn để kết nối các đầu dương và âm từ bộ chuyển đổi âm tường 12 volt.
Bước 5: Mô hình học máy được đào tạo
Với mục đích nhận dạng chữ cái do một người vẽ, tôi đã đào tạo một mô hình học máy dựa trên thuật toán Hỗ trợ Vector Machine (SVM) bằng cách sử dụng Tập dữ liệu gồm các bảng chữ cái tiếng Anh viết tay mà tôi tìm thấy ở đây. SVM là các thuật toán học máy rất hiệu quả có thể cung cấp độ chính xác cao, khoảng 99,2% trong trường hợp này !! Đọc thêm về SVM
Tập dữ liệu ở dạng tệp.csv chứa 785 cột và hơn 300, 000 hàng trong đó mỗi hàng đại diện cho một hình ảnh 28 x 28 và mỗi cột trong hàng đó chứa giá trị của pixel đó cho hình ảnh đó với một cột bổ sung trong phần đầu chứa nhãn, một số từ 0 đến 25, mỗi nhãn tương ứng với một chữ cái tiếng Anh. Thông qua một mã python đơn giản, tôi cắt dữ liệu để lấy tất cả các hình ảnh chỉ cho 2 chữ cái (A và C) mà tôi muốn và đào tạo một mô hình cho chúng.
Tôi đã đính kèm mô hình được đào tạo (alphabet_classifier.pkl) và cả mã đào tạo, vui lòng xem qua nó hoặc thực hiện bất kỳ thay đổi nào để đào tạo mô hình bằng các chữ cái khác nhau hoặc thử các thuật toán khác nhau. Sau khi chạy chương trình, chương trình sẽ tự động lưu mô hình được đào tạo trong cùng thư mục nơi mã của bạn được lưu.
Bước 6: Mã tạo nên tất cả !
Sau khi tạo mô hình được đào tạo, bước cuối cùng là viết một chương trình python cho Raspberry Pi của chúng tôi để cho phép chúng tôi thực hiện những việc sau:
- Truy cập hình thức video picamera trong thời gian thực
- Phát hiện và theo dõi các đốm màu trắng (trong trường hợp này là đầu đũa phép phát sáng trong tầm nhìn ban đêm) trong video
- Bắt đầu theo dõi đường đi của đốm màu di chuyển trong video sau một số sự kiện kích hoạt (giải thích bên dưới)
- Ngừng theo dõi sau một sự kiện kích hoạt khác (giải thích bên dưới)
- Trả lại khung hình cuối cùng với mẫu do người dùng vẽ
- Thực hiện xử lý trước trên khung hình như đặt ngưỡng, loại bỏ nhiễu, thay đổi kích thước, v.v.
- Sử dụng khung cuối cùng đã xử lý để dự đoán.
- Thực hiện một số phép thuật bằng cách điều khiển các GPIO của Raspberry Pi theo ý muốn
Đối với dự án này, tôi đã tạo một hộp theo chủ đề Harry Potter mà tôi có thể mở và đóng bằng động cơ servo được điều khiển bởi GPIO của Raspberry Pi. Vì chữ 'A' là viết tắt của 'Alohamora' (một trong những câu thần chú nổi tiếng nhất trong các bộ phim Harry Potter cho phép phù thủy mở bất kỳ ổ khóa nào !!), nếu một người vẽ chữ A bằng cây đũa phép, số pi sẽ ra lệnh cho servo Mở hộp. Nếu người đó vẽ chữ 'C' có nghĩa là đóng (vì tôi không thể nghĩ ra bất kỳ câu thần chú thích hợp nào được sử dụng để đóng hoặc khóa: P), pi sẽ ra lệnh cho servo đóng hộp.
Tất cả các công việc liên quan đến xử lý hình ảnh / video, như phát hiện đốm màu, lần theo đường đi của đốm màu, xử lý trước khung hình cuối cùng, v.v., đều được thực hiện thông qua mô-đun OpenCV.
Đối với các sự kiện kích hoạt được đề cập ở trên, hai vòng tròn được tạo trên video thời gian thực, một vòng tròn màu xanh lá cây và một vòng tròn màu đỏ. Khi đốm màu đi vào vùng trong vòng tròn màu xanh lá cây, chương trình bắt đầu dò đường đi của đốm màu sau thời điểm đó cho phép người đó bắt đầu tạo chữ cái. Khi đốm màu chạm đến vòng tròn màu đỏ, video sẽ dừng lại và khung hình cuối cùng được chuyển đến một chức năng thực hiện xử lý trước trên khung hình để sẵn sàng cho việc mua trước.
Tôi đã đính kèm các tệp mã trong bước này. Vui lòng xem qua nó và thực hiện bất kỳ thay đổi nào bạn muốn.
LƯU Ý: Tôi đã phải tạo hai tệp python riêng biệt hoạt động với các phiên bản python khác nhau, một tệp nhập mô-đun OpenCV (Python 2.7) và tệp khác nhập mô-đun sklearn (Python 3.5) để dự đoán sau khi tải mô hình được đào tạo, vì OpenCV của tôi đã được cài đặt cho phiên bản Python 2.7 trong khi sklearn được cài đặt cho python 3.5. Vì vậy, tôi đã sử dụng mô-đun quy trình con để chạy tệp HarryPotterWandsklearn.py (để dự đoán) từ HarryPotterWandcv.py (cho tất cả công việc opencv và quay video thời gian thực) và nhận đầu ra của nó. Bằng cách này, tôi chỉ phải chạy tệp HarryPotterWandcv.py.
Bước 7: Cơ chế mở hộp
Tôi có một chiếc hộp cũ màu đỏ nằm xung quanh mà tôi đã sử dụng cho dự án này.
Đối với cơ chế Mở hộp:
- Tôi đã dán nóng một servo gần phần cuối phía sau của hộp trên một miếng bìa cứng gần vành hộp.
- Sau đó, tôi lấy một thanh nói từ bánh xe của một chu kỳ và dán nóng nó vào cánh tay của servo.
- Đầu còn lại của miệng nói được gắn vào nắp hộp bằng một đoạn dây.
- Tích cực của servo được kết nối với + 5V Pin 2 trên Raspberry Pi.
- Âm của servo được kết nối với Chân 39 của GND.
- Tín hiệu của servo đã được kết nối với Chân 12
Bước 8: Làm Hộp theo Chủ đề Harry Potter
Để làm Hộp theo chủ đề Harry Potter, tôi đã in ra một số hình ảnh màu về nhiều thứ khác nhau như Logo Harry Potter, Ngôi nhà ở Hogwarts, Ngôi nhà của mỗi ngôi nhà trong số bốn ngôi nhà, v.v. trên tờ giấy khổ A4 bóng và dán chúng lên hộp với nhiều loại khác nhau nơi.
Tôi cũng dùng một tấm nhung màu Vàng để cắt các dải và dán chúng lên nắp hộp để tạo cho chiếc hộp có màu giống với màu của Ngôi nhà Gryffindor. Tôi đã che bên trong nắp và bìa cứng cho servo bằng tấm nhung màu xanh lá cây. Ở bên trong nắp, tôi dán thêm các biểu tượng và biểu tượng thể hiện các con vật đại diện cho từng ngôi nhà của Trường Hogwarts.
Sau đó, cuối cùng tôi đã nhét tất cả những thứ liên quan đến Harry Potter của mình vào trong hộp, trong đó có một chiếc khăn bịt miệng Gryffindor, một cuốn nhật ký với bộ đồng phục Hogwarts và cây Đũa phép Anh cả được sử dụng trong dự án này: D
Đề xuất:
Tự làm đèn LED lá kim lục giác hình lục giác: 5 bước (có hình ảnh)
Tự làm Đèn LED Nanoleaf Lục giác: Sau khi xem bảng giá cho Nanoleaf Aurora hoặc các Bảng LED tương tự, tôi đã thực hiện một số nghiên cứu và quyết định tạo phiên bản của riêng mình với mức giá thấp hơn nhiều. acrylic dày bán trong suốt WS281
Lấy cắp dữ liệu Hexbug Spider XL để thêm thị giác máy tính bằng điện thoại thông minh Android: 9 bước (có hình ảnh)
Lấy cắp dữ liệu Hexbug Spider XL để thêm thị giác máy tính bằng điện thoại thông minh Android: Tôi là một fan hâm mộ lớn của Hexbug ™ Nhện. Tôi đã sở hữu hơn một tá và đã hack tất cả. Bất cứ lúc nào một trong những con trai của tôi đi gặp bạn bè ’ tiệc sinh nhật, người bạn nhận được một Hexbug ™ nhện như một món quà. Tôi đã hack hoặc
Nhận dạng sao bằng Thị giác máy tính (OpenCV): 11 bước (với Hình ảnh)
Nhận dạng sao bằng Thị giác máy tính (OpenCV): Tài liệu hướng dẫn này sẽ mô tả cho bạn cách tạo chương trình thị giác máy tính để tự động xác định các mẫu sao trong hình ảnh. Phương pháp này sử dụng thư viện OpenCV (Open-Source Computer Vision) để tạo một tập hợp các tầng HAAR được đào tạo có thể
Đũa phép vẽ tranh bằng ánh sáng đa màu dựa trên Arduino: 13 bước (có hình ảnh)
Đũa phép vẽ tranh bằng ánh sáng đa màu dựa trên Arduino: Vẽ tranh bằng ánh sáng là một kỹ thuật được các Nhiếp ảnh gia sử dụng, nơi một nguồn ánh sáng được sử dụng để vẽ các mẫu thú vị và Máy ảnh sẽ kết hợp chúng lại với nhau. Kết quả là Ảnh sẽ chứa các vệt sáng trong đó, cuối cùng sẽ tạo ra một
Sử dụng PSP làm cần điều khiển máy tính và sau đó điều khiển máy tính của bạn bằng PSP: 5 bước (với Hình ảnh)
Sử dụng PSP làm cần điều khiển máy tính và sau đó điều khiển máy tính của bạn bằng PSP: Bạn có thể làm nhiều điều thú vị với PSP homebrew và trong bài viết có hướng dẫn này, tôi sẽ hướng dẫn bạn cách sử dụng PSP làm cần điều khiển để chơi trò chơi, nhưng cũng có một chương trình cho phép bạn sử dụng cần điều khiển làm chuột của mình. Đây là trường cũ