Mục lụ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): 11 bước (với Hình ảnh)

Video: Nhận dạng sao bằng Thị giác máy tính (OpenCV): 11 bước (với Hình ảnh)

Video: Nhận dạng sao bằng Thị giác máy tính (OpenCV): 11 bước (với Hình ảnh)
Video: Thị giác máy tính - 29. Nhận diện khuôn mặt bằng OpenCV DNN 2024, Tháng mười một
Anonim
Nhận dạng sao bằng Thị giác máy tính (OpenCV)
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 một chương trình thị giác máy tính để tự động xác định các mẫu sao trong một 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ể được sử dụng để nhận ra các mẫu sao cụ thể. Mặc dù hướng dẫn này là trong bối cảnh nhận dạng mẫu hình sao, quy trình OpenCV mà tôi mô tả cũng có thể được áp dụng cho các ứng dụng khác - vì vậy hy vọng nó sẽ hữu ích!

Dự án được tóm tắt trong video này:

Tại sao tôi viết điều này có hướng dẫn?

  1. Phương pháp xác định mẫu sao mà tôi đang phát triển, tôi tin rằng có tiềm năng được áp dụng cho một loạt các dự án thiên văn nghiệp dư - cho dù đó là định hướng kính thiên văn, phân loại hình ảnh tự động, hay thậm chí cuối cùng là cảm biến sao trên nguồn mở hoặc CubeSat nghiệp dư.
  2. Có rất nhiều hướng dẫn OpenCV tốt ở đây, nhưng dù vậy tôi vẫn thấy ban đầu nó là một quá trình rất khó học, vì vậy tôi hy vọng rằng hướng dẫn này sẽ là một tài liệu tham khảo tốt cho những người khác đang tìm cách đào tạo bộ phân loại HAAR cho OpenCV (không nhất thiết phải làm với thiên văn học có thể!).
  3. Bản thân tôi không phải là một lập trình viên được đào tạo, vì vậy dự án này thực sự đã thúc đẩy sự hiểu biết của tôi. Hy vọng rằng bằng cách viết này, những người có kinh nghiệm khác, có kinh nghiệm hơn sẽ được truyền cảm hứng để làm việc trên khái niệm này và đóng góp cho GitHub cũng như tài liệu hướng dẫn này thông qua nhận xét trên trang này.
  4. Thiên văn nghiệp dư và các phương pháp định hướng là mối quan tâm lớn của tôi, hãy xem tài liệu hướng dẫn trước đây của tôi có Trình tìm sao Arduino cho Kính thiên văn.

Ảnh bìa của Sách hướng dẫn này là một thiết kế CubeSat 3U theo ý tưởng mà tôi đã tham gia thiết kế. Tôi đã sử dụng nó để minh họa hướng dẫn này vì ứng dụng ban đầu của hệ thống nhận dạng sao tầm nhìn máy tính là dành cho cảm biến định hướng cho CubeSats do nghiệp dư sản xuất, sử dụng Máy ảnh Raspberry Pi V2. Tôi tin rằng có rất nhiều ứng dụng tiềm năng khác của việc nhận dạng sao bằng thị giác máy tính, nhưng tôi nghĩ đây là ứng dụng tuyệt vời nhất!

Một bảng chú giải thuật ngữ nhỏ:

Việc tìm hiểu về thị giác máy tính bị chậm hơn do số lượng thuật ngữ chuyên môn được sử dụng một cách ngu ngốc, vì vậy tôi sẽ định nghĩa một số cho chúng ta ở đây:

Cascade - Một bộ phân loại được đào tạo để xác định một đối tượng mục tiêu cụ thể.

Fiducial Marker - Một điểm đánh dấu thêm một điểm tham chiếu trực quan vào hình ảnh.

HAAR - Các tính năng giống như tiếng ồn là một loại tính năng hình ảnh được sử dụng để đào tạo bộ phân loại.

OpenCV - Nguồn mở Máy tính Vision, một thư viện các công cụ thị giác máy tính.

Stellarium - Phần mềm thiên văn mã nguồn mở.

Bước 1: Yêu cầu

OpenCV là một thư viện dựa trên Linux, vì vậy mặc dù được cho là có thể vận hành nó tốt trên Windows, nhưng bạn sẽ có thời gian dễ dàng hơn nhiều khi chạy nó trong môi trường Linux (tôi lấy điều này và rất nhiều ngày cố gắng để nó hoạt động hoàn toàn. Các cửa sổ!). Như một thử nghiệm, tôi đã tải xuống và chạy OpenCV trên Raspberry Pi 3B + của mình, điều này đã thành công, mặc dù đào tạo trình phân loại là một quá trình tốn rất nhiều RAM, vì vậy nếu bạn muốn thực hiện ở bất kỳ tốc độ nào, cách được đề xuất là thuê một Máy chủ ảo Linux (thực tế có thể không tốn kém một cách đáng ngạc nhiên) trong vài ngày / tuần / tháng và sử dụng môi trường đó như một môi trường chuyên dụng để chạy đào tạo trình phân loại. Bạn sẽ có thể điều khiển máy chủ từ PC Windows bằng ứng dụng khách SSH chẳng hạn như Putty. Sau khi các tầng được đào tạo bằng VPS, chúng có thể được tải xuống PC Windows của bạn và Python có thể được sử dụng để chạy chương trình nhận dạng hình ảnh trong môi trường Windows.

Máy chủ ảo Linux:

Cần có Máy chủ ảo Linux (VPS) để thực hiện các quy trình đào tạo theo tầng HAAR. Ban đầu, tôi thuê một máy chủ với 8GB RAM và Ubuntu 16.04.6 (LTS) x64, sau đó là máy chủ thứ hai để tăng gấp đôi tốc độ mà tôi có thể đào tạo các tầng, mặc dù bạn sẽ chỉ cần tối thiểu một máy

Phần mềm:

  • Stellarium - đây là phần mềm thiên văn / cung thiên văn ảo, được cung cấp miễn phí. Nó sẽ được sử dụng để thu thập hình ảnh ngôi sao mô phỏng để sử dụng trong thử nghiệm.
  • Putty - Đây là một máy khách SSH được sử dụng để điều khiển VPS thông qua dòng lệnh.
  • WinSCP - điều này được sử dụng để thực hiện truyền tệp từ PC Windows.

Bước 2: Thiết lập VPS

Có một quy trình thiết lập nhỏ để khởi động và chạy VPS. Lần đầu tiên có thể mất một chút thời gian cho bạn, nhưng nó không quá phức tạp nếu bạn làm theo các bước một cách chặt chẽ. Hướng dẫn này là một tài liệu tham khảo tuyệt vời đối với tôi, tôi khuyên bạn nên đọc nó trong khi làm việc với hướng dẫn này. Nó bao gồm các chi tiết cụ thể của từng dòng lệnh linux, điều này là cần thiết để tuân theo chữ cái.

Về cơ bản, quá trình này bao gồm:

  1. Tạo máy chủ Linux với phiên bản Ubuntu chính xác.
  2. Nâng cấp và cập nhật máy chủ.
  3. Tạo một thư mục không gian làm việc, trong đó OpenCV được cài đặt.
  4. Cài đặt một số yếu tố cần thiết, cụ thể là trình biên dịch, các thư viện khác nhau và các liên kết Python.

Sau giai đoạn này, bạn đã sẵn sàng để bắt đầu chuẩn bị cho quá trình đào tạo.

Bước 3: Quy trình

Toàn bộ quá trình thị giác máy tính bằng cách sử dụng các tầng HAAR lúc đầu khá khó hiểu, vì vậy Bước này mô tả logic chi tiết hơn một chút:

Quy trình cơ bản

  1. Tồn tại một tập dữ liệu hình ảnh âm bản, bao gồm vài nghìn hình ảnh không chứa đối tượng quan tâm. Điều này sẽ cần được tải lên VPS.
  2. Một hình ảnh dương bản duy nhất được tạo ra có chứa đối tượng quan tâm. Điều này cũng sẽ cần được tải lên VPS.
  3. Hình ảnh dương bản duy nhất bị bóp méo, cong vênh, xoay, v.v., bởi một tập hợp các thông số đã chọn và phủ lên trên một lựa chọn các hình ảnh âm bản. Đây là một cách nhân tạo để tạo ra một tập dữ liệu tích cực lớn từ một hình ảnh duy nhất. (Đối với các ứng dụng trong thế giới thực khác, chẳng hạn như xác định một con mèo, bạn có thể chỉ cần sử dụng vài nghìn hình ảnh về mèo, nhưng phương pháp này không phải lúc nào cũng thích hợp nếu bạn không có một bộ hình ảnh tích cực lớn như vậy. Phương pháp nhân tạo được sử dụng ở đây sẽ kém hiệu quả hơn, nhưng nó là lựa chọn duy nhất cho trường hợp sử dụng như thế này).
  4. Quá trình đào tạo được chạy, hoạt động theo từng giai đoạn. Mỗi giai đoạn sẽ huấn luyện một tầng để xác định các đặc điểm kiểu HAAR khác nhau trong tập hình ảnh. Mỗi giai đoạn mất nhiều thời gian hơn để hoàn thành theo cấp số nhân và hiệu quả của trình phân loại tăng lên mỗi lần (bạn cũng có thể đào tạo quá mức!).
  5. Một tầng được đào tạo duy nhất sẽ có thể tìm kiếm một đối tượng mục tiêu duy nhất. Nếu bạn muốn xác định nhiều đối tượng duy nhất, bạn sẽ cần một tầng được đào tạo cho từng đối tượng. Trong trường hợp này, tôi đã đào tạo khoảng 50 tầng khác nhau cho những ngôi sao sáng tạo độc đáo, để tạo ra một tập hợp có thể bao phủ bán cầu thiên thể bắc.
  6. Cuối cùng, một chương trình phát hiện được sử dụng để chạy từng tầng của một tập hợp với một hình ảnh đầu vào. Dòng thác sẽ tìm kiếm đối tượng mục tiêu đã cho của nó trong hình ảnh đầu vào.
  7. Nếu thành công, đối tượng mục tiêu sẽ được xác định trong hình ảnh đầu vào.

n.b. chẳng hạn nếu được sử dụng trong bối cảnh định hướng vệ tinh, hình ảnh sẽ được chụp bằng máy ảnh tích hợp. Các ngôi sao sáng nhất trong hình ảnh đó sẽ được xác định và các điểm đánh dấu được phủ lên các vị trí đó. Sau đó, hình ảnh này được trình bày cho tập hợp các tầng được đào tạo, sẽ kiểm tra xem hình ảnh đầu vào có chứa bất kỳ đối tượng mục tiêu nào hay không. Nếu phát hiện dương tính thực, thì vị trí góc của một chòm sao đã biết sẽ được phát hiện so với trục của thân vệ tinh.

Bước 4: Phủ định và khẳng định

Phủ định

Một khía cạnh thực sự quan trọng của đào tạo theo tầng là có một tập dữ liệu về hình ảnh âm bản càng lớn càng tốt. Chúng ta đang nói đến hàng nghìn, lý tưởng là hàng chục nghìn hình ảnh. Nó thực sự không quan trọng chúng chứa những gì, mục đích chỉ là cung cấp nhiều thông tin trực quan. Thư mục Classifier Training chứa nhiều bộ dữ liệu hình ảnh âm bản khác nhau mà tôi đã biên dịch. Ban đầu, chúng chỉ bao gồm các hình ảnh mô phỏng trường sao thu thập được từ Stellarium, nhưng sau đó tôi đã tăng cường tập dữ liệu với nhiều hình ảnh ngẫu nhiên nhất có thể tìm thấy (vâng, bao gồm cả ảnh kỳ nghỉ của tôi…). Tập dữ liệu lớn nhất ở đó bao gồm gần 9000 hình ảnh, là tập lớn nhất mà tôi đã tạo cho đến nay. Bằng cách sử dụng nó, bạn sẽ tiết kiệm được việc biên dịch của riêng mình.

Tích cực

Hình ảnh tích cực (đó là mẫu sao mục tiêu mà thác sẽ được huấn luyện để nhận ra) bắt đầu dưới dạng ảnh chụp màn hình của mẫu sao trong Stellarium. Sau đó, một chương trình python xác định các ngôi sao sáng nhất trong hình ảnh và phủ các điểm đánh dấu (được giải thích sau trong phần hướng dẫn này) lên các vị trí ngôi sao này. Hình ảnh này sau đó được thu nhỏ thành 50x50 pixel. Điều này là nhỏ, nhưng thời gian đào tạo cần thiết cho các tầng sẽ tăng lên theo cấp số nhân khi kích thước này tăng lên, và vì vậy đây là một sự thỏa hiệp tốt giữa chất lượng và thời gian.

Bước 5: Kiểm soát Stellarium

Kiểm soát Stellarium
Kiểm soát Stellarium
Kiểm soát Stellarium
Kiểm soát Stellarium

Thư mục Stellarium Scripts của kho lưu trữ GitHub chứa ba chương trình tôi đã viết để kiểm soát việc sử dụng Stellarium. Để sử dụng chúng, hãy đặt chúng vào thư mục script trong thư mục cài đặt Stellarium của bạn. Để chạy chúng, bạn có thể mở cửa sổ script từ trong menu Stellarium hoặc chỉ cần nhấp đúp vào chương trình trong thư mục scripts, nó sẽ khởi chạy Stellarium và ngay lập tức chạy chương trình đã chọn.

Luận điểm_4 và luận án_5 chụp khoảng 2000 hình ảnh tương ứng ở mỗi bán cầu bắc và nam, bán cầu thiên thể. Chúng được sử dụng để tạo cơ sở dữ liệu về hình ảnh tiêu cực, để đào tạo hình ảnh tích cực chống lại. Sự phân biệt giữa bắc và nam là một cách đơn giản để đảm bảo rằng mẫu sao mục tiêu (dương) sẽ không có trong tập dữ liệu âm bằng cách huấn luyện các mẫu sao bán cầu bắc so với tập dữ liệu hình ảnh bán cầu nam và ngược lại. (Nếu một hình ảnh dương tính cũng có trong tập dữ liệu hình ảnh âm bản, nó sẽ ảnh hưởng đến chất lượng của bộ phân loại).

Luan_setup cũng rất hữu ích - điều này thiết lập Stellarium để thích hợp để chụp ảnh - những hình ảnh được sử dụng để mô phỏng chế độ xem từ Không gian. Nó tự động thực hiện các hành động như ẩn menu, đường lưới, nhãn, v.v. để tiết kiệm cho bạn mỗi khi bạn muốn lấy một hình ảnh.

Bước 6: Người đàn ông tên lửa

Người tên lửa
Người tên lửa

Các tầng đầu tiên tôi đào tạo không thể xác định chính xác bất kỳ mẫu sao nào. Họ rất không đáng tin cậy và rất dễ bị dương tính giả. Giả định của tôi là hiệu quả các hình ảnh trường sao từ Stellarium (về cơ bản chỉ là các chấm trắng trên nền đen) chỉ không chứa đủ thông tin trực quan để chứa đủ các tính năng kiểu HAAR để đào tạo bộ phân loại thành công. Tôi nghĩ rằng đã tối muộn, nhưng tôi quyết định thử ý tưởng viết một chương trình để tự động đặt một hình ảnh thu nhỏ nhỏ lên vị trí của mỗi ngôi sao sáng trong hình ảnh trường sao.

Elton

Đây là một thử nghiệm ngớ ngẩn, nhưng bằng cách thêm một bức ảnh nhỏ về khuôn mặt của Elton John vào mỗi vị trí của ngôi sao sáng, huấn luyện bộ phân loại dựa trên hình ảnh tích cực này, và sau đó chạy các tầng so với hình ảnh ban đầu, nó sẽ hiệu quả hơn nhiều trong việc tìm kiếm chính xác đúng mẫu. Tôi biết tôi đã vào một cái gì đó!

Bước 7: Đánh dấu Fiducial

Điểm đánh dấu Fiducial
Điểm đánh dấu Fiducial

Mặc dù 'Eltons' đã chứng minh lý thuyết, tôi cần một điểm đánh dấu có hoàn toàn đối xứng quay, để hình sao sẽ xuất hiện giống nhau cho dù nó được trình bày ở hướng nào. Tôi đã thử nghiệm một loạt các loại điểm đánh dấu và nhận thấy rằng loại ở dưới cùng bên phải là hiệu quả nhất, với các vòng màu đen và trắng tương phản. Chương trình python được trình bày trong thư mục dương của repo GitHub cho biết cách các ngôi sao sáng nhất trong một hình ảnh nhất định được xác định và các điểm đánh dấu này tự động phủ lên các vị trí đó. Bây giờ chúng tôi đã tạo ra một đại diện của các mẫu sao chính có thể được đào tạo để chống lại.

Bước 8: Sử dụng Cascades

Sử dụng Cascades
Sử dụng Cascades

Khi bạn đã đào tạo một tập hợp các tầng, bạn cần biết cách sử dụng chúng để xác định một đối tượng trong ảnh!

Nhìn vào thư mục Nhận dạng Sao của GitHub, nơi bạn sẽ tìm thấy chương trình cascade_test19.py. Chương trình có tên catchily này lấy một tập hợp các tầng từ một thư mục nhất định, và chạy tất cả chúng trên một hình ảnh đầu vào và báo cáo về các phát hiện được thực hiện. Hàm 'detectorMultiScale' là cốt lõi của điều này và nó cần nhiều đối số để xác định quá trình phát hiện. Việc thay đổi những điều này là rất quan trọng đối với hiệu suất của bộ phân loại tầng và có thể tìm thấy thêm thảo luận về điều này trong bước sau, nơi chúng ta xem xét cách loại bỏ kết quả dương tính giả.

Điều này có thể được áp dụng trong hệ thống định hướng vệ tinh bằng cách tương quan giá trị pixel ở trung tâm của hộp giới hạn với tọa độ thiên thể Ra / Dec của mẫu sao đã xác định, và sau đó tương quan điều này với sự dịch chuyển góc từ tâm ảnh (máy ảnh trục). Từ đó, bằng cách sử dụng sự hiểu biết về độ méo của thấu kính (gần đúng với phép chiếu gnomonic), có thể tìm thấy góc của vệ tinh chỉ từ hai nhận dạng dương.

Bước 9: Làm thế nào để giữ tích cực về những khẳng định sai lầm

Làm thế nào để giữ tích cực về những khẳng định sai lầm
Làm thế nào để giữ tích cực về những khẳng định sai lầm
Làm thế nào để giữ tích cực về những khẳng định sai lầm
Làm thế nào để giữ tích cực về những khẳng định sai lầm

Hai hình ảnh này cho thấy kết quả thử nghiệm bộ thác so với một hình ảnh giống hệt nhau, nhưng có các thông số khác nhau. Rõ ràng, hình ảnh đầu tiên chứa nhận dạng đúng, nhưng cũng có một số lượng lớn dương tính giả, trong khi hình ảnh thứ hai chỉ chứa nhận dạng đúng.

Chương trình cascade_test19.py trong thư mục Nhận dạng Sao của kho GitHub sử dụng hai phương pháp để sắp xếp kết quả. Đầu tiên, chức năng DetMultiScale đặt Miminum và Kích thước kết quả tối đa có thể tìm thấy, điều này có thể cảm nhận được, như kích thước gần đúng của mẫu sao mục tiêu trong cửa sổ (đối với thấu kính và độ phóng đại đã cho - hình ảnh Stellarium được mô phỏng của tôi sử dụng các đặc tính của Raspberry Pi V2 Camera) được biết đến. Thứ hai, đoạn mã sẽ chọn kết quả có ô giới hạn lớn nhất (trong các giới hạn trước đó). Trong thử nghiệm, điều này được tìm thấy là dương tính thực sự. Thứ ba, chương trình đặt một 'levelWeights' (hiệu quả là 'giá trị tin cậy') tối thiểu được yêu cầu để coi ID này là một giá trị dương thực sự. Bằng phương pháp này, các tầng có hiệu quả trong việc tìm ra kết quả chính xác.

Cũng như các hình ảnh trường sao, tôi cũng đã thử nghiệm điều này với các hình ảnh trên bàn làm việc của tôi, ví dụ, đào tạo các tầng để xác định sổ ghi chép, cốc, v.v. của tôi, để thực hành loại bỏ dương tính giả. Các phương pháp trên hoạt động hiệu quả trong mọi trường hợp đáng khích lệ.

Bước 10: Thảo luận

Thảo luận
Thảo luận
Thảo luận
Thảo luận
Thảo luận
Thảo luận

Các lĩnh vực cần cải thiện

Đây là một dự án phức tạp đối với tôi, và thực sự đã thúc đẩy sự hiểu biết của tôi về chủ đề này. Tôi đã mất tổng cộng vài tháng làm việc gần như toàn thời gian để hoàn thành dự án cho đến thời điểm này khi tôi có thể chia sẻ nó với bạn, nhưng còn rất nhiều việc phải làm để cải thiện hiệu suất của phương pháp. Như hiện tại, nó có thể hoạt động tốt trong một số ràng buộc nhất định. Tôi đã làm việc để xác định những lĩnh vực nào đang cần thêm công việc và hy vọng sẽ có thể dành thời gian giải quyết những vấn đề này trong những tháng tới. Họ đang:

Góc - Đây là một khu vực phức tạp, ý tưởng rằng kết quả của bộ phân loại phải bất biến quay, tức là nó phải xác định được độ tin cậy của mẫu sao mục tiêu bất kể góc mà nó được hiển thị trên hình ảnh có chứa mẫu sao mục tiêu. Một tầng được đào tạo bằng cách sử dụng hình ảnh đầu vào theo một hướng duy nhất sẽ không thể xác định hình ảnh đó theo các hướng ngẫu nhiên, do đó phương sai của góc ảnh dương phải được đưa vào quá trình đào tạo để đào tạo các tầng có thể chấp nhận một phạm vi trên các góc đầu vào. Tham số 'maxzangle' trong các lệnh huấn luyện theo tầng lấy đối số tính bằng radian, điều khiển giới hạn góc mà hình ảnh dương tính đầu vào sẽ được phủ lên các hình ảnh âm bản được cung cấp, do đó, tập hợp hình ảnh dương tính kết quả sẽ chứa một loạt các hướng hình ảnh tích cực. Tuy nhiên, khi cực đại này tăng lên, tỷ lệ chấp nhận (nói rộng ra là chất lượng) của tầng sẽ giảm mạnh. Tôi tin rằng giải pháp là đào tạo các tầng bằng cách sử dụng cơ sở dữ liệu hình ảnh âm bản lớn hơn đáng kể so với những gì tôi đang sử dụng để đảm bảo rằng bộ phân loại tầng chất lượng tốt có thể được tạo ra ngay cả khi kết hợp một dải định hướng lớn.

Một giải pháp tiềm năng khác là đào tạo một số tầng cho một mục tiêu cụ thể, mỗi tầng điều chỉnh một phần nhất định của vòng quay 360 độ đầy đủ. Bằng cách đó, chất lượng của mỗi tầng có thể được duy trì ở mức cao, nhưng mặt khác, điều này sẽ dẫn đến nhiều tầng hơn và do đó quá trình nhận dạng sẽ chậm hơn.

Tham số 'levelWeight', là một giá trị được cung cấp bởi hàm 'detectorMultiScale', tương tự như một giá trị tin cậy trong quá trình phát hiện đã được thực hiện. Nghiên cứu điều này, biểu đồ trên đã được tạo ra, cho thấy mức độ tin cậy của nhận dạng tích cực giảm mạnh như thế nào khi hướng của hình ảnh tăng lên theo cả hai hướng, xác nhận những suy nghĩ rằng đây là một điểm yếu.

Vị trí pixel - Một điểm đơn giản hơn nhiều, nhưng cũng có vấn đề là vị trí pixel, được minh họa bằng hai hình ảnh sau đây, cho thấy hình ảnh ngôi sao được phóng to, để có thể nhìn thấy rõ các pixel riêng lẻ của hai ngôi sao. Quá trình xói mòn được sử dụng trong chương trình để loại bỏ tất cả ngoại trừ các ngôi sao sáng nhất khỏi hình ảnh sẽ giữ lại ngôi sao đầu tiên và loại bỏ ngôi sao thứ hai, mặc dù chúng có độ sáng bằng nhau. Lý do cho điều này là ngôi sao đầu tiên được căn giữa trên một pixel, trong khi ngôi sao thứ hai thì không như vậy. Chức năng xói mòn tách các vòng đồng tâm của pixel từ xung quanh pixel trung tâm của một nhóm và vì vậy ngôi sao đầu tiên sẽ có pixel trung tâm tồn tại chức năng xói mòn, nhưng ngôi sao thứ hai sẽ bị loại bỏ hoàn toàn khỏi hình ảnh. Do đó, các điểm đánh dấu fiducial sẽ chỉ được đặt trên ngôi sao đầu tiên chứ không phải ngôi sao thứ hai. Điều này sẽ gây ra sự mâu thuẫn liên quan đến việc những ngôi sao sáng nào trong một trường sao nhất định sẽ nhận được các điểm đánh dấu (và do đó được so sánh với các bộ phân loại được đào tạo) - do đó có thể không thể thực hiện được một quan sát dương tính chính xác.

Bước 11: Lời cuối cùng

Tư cuôi cung
Tư cuôi cung

Cảm ơn bạn đã đọc hướng dẫn của tôi, tôi hy vọng rằng bạn thấy dự án này hấp dẫn. Đó là một quá trình rất thú vị khi thực hiện nó, đã hơn một năm kể từ khi tôi bắt đầu thực hiện ý tưởng này, và tôi được khuyến khích bởi kết quả cho đến thời điểm này. Từ những tài liệu tôi đã đọc, đây là một khái niệm khá ban đầu, và với sự phát triển hơn nữa chắc chắn có thể được áp dụng trong một loạt các ứng dụng cho thiên văn học nghiệp dư trở lên.

Dự án này là một đường cong học tập khó khăn đối với tôi và vì vậy tôi hy vọng rằng một số độc giả có nhiều kinh nghiệm lập trình hơn có thể được truyền cảm hứng để đóng góp vào việc tiếp tục dự án thông qua trang GitHub và chúng tôi có thể tiếp tục phát triển công cụ mã nguồn mở này. Tôi mong muốn được đọc bất kỳ ý kiến nào của bạn, nhưng xin đừng hỏi quá nhiều câu hỏi khó!

Thử thách không gian
Thử thách không gian
Thử thách không gian
Thử thách không gian

Á quân trong Thử thách không gian

Đề xuất: