Tôi đã xây dựng một hệ thống phân đoạn các hình ảnh nhị phân chứa các ký hiệu viết tay và phân loại chúng (đặc biệt dành cho âm nhạc). Tôi biết có những ứng dụng thương mại thực hiện việc này, nhưng đây là nỗ lực của tôi để bắt đầu nó lại từ đầu như một dự án.
Để đơn giản, giả sử tôi có hai yếu tố trong toàn bộ hình ảnh của mình:
Và
Tôi đã xây dựng thứ gì đó có thể phân chia hình ảnh thành các vùng và phân loại chúng. Điều này hoạt động tốt trong hầu hết các trường hợp.
Tuy nhiên, đôi khi các phần tử tiếp xúc với nhau, lúc đó bộ phân loại của tôi gặp sự cố. Ví dụ:
或者
Cách tốt nhất để phân biệt giữa hai là gì? Tôi đã thực hiện rất nhiều nghiên cứu nhưng tôi nghĩ việc thiếu kiến thức về miền có thể khiến tôi thất vọng!
Những gì tôi tìm thấy:
- Khả năng khớp mẫu kém, các ký hiệu được viết tay
- Nhật thực mỏng/xâm lấn cũng không có tác dụng, đặc biệt là khi hai góc nhọn (trên cùng bên phải) chồng lên nhau vì chúng xuống cấp quá nhiều.
- Màu nền đầu nguồn không hoạt động đối với hai hình dạng phức tạp
Điều gì đó có thể hữu ích, tôi đánh giá cao việc bỏ phiếu "làm điều đó" hoặc "tránh" trước khi tôi đi xuống hố thỏ.
- Trượt các cửa sổ L->R có kích thước khác nhau và cố gắng phân loại chúng. Chọn cửa sổ và vị trí có độ tin cậy phân loại tích cực cao nhất.
- Thực hiện phép chiếu (theo chiều ngang và chiều dọc) và "cắt" hình ảnh ở mức tối thiểu (đây sẽ là điểm mỏng nhất trên trục tương ứng
Theo tôi đây là một vấn đề rất khó và tôi không có giải pháp tổng thể tốt. Đặc biệt là nhiều kết nối#
Tình hình sẽ khó giải quyết.
Trong trường hợp cụ thể của bạn, tôi sẽ thử cách sau, giả sử rằng thông thường không có quá hai hoặc ba ký hiệu được nhóm lại với nhau:
- Khi đốm màu quá lớn đối với một biểu tượng
- cho mọi biểu tượng có thể
- Lấy một vùng ở góc trên bên trái, góc trên bên phải, góc dưới bên trái, góc dưới bên phải và đặt kích thước chính xác cho biểu tượng
- Chạy chứng thực của bạn cho khu vực
- Nếu thành công, hãy xóa các ký hiệu đã nhận dạng và lặp lại với phần còn lại
Đây không phải là một giải pháp quá phức tạp và nó hoạt động tốt như thế nào phụ thuộc rất nhiều vào khả năng nhận dạng ký tự cụ thể của bạn
Một suy nghĩ khác:
Nếu hầu hết các hình dạng của bạn có xu hướng có các đoạn thẳng đứng mỏng, bạn có thể thực hiện việc này bằng cách biến đổi Hough xác suất Các phân đoạn này được xác định và các phân đoạn dọc được tìm thấy sẽ được sử dụng làm điểm bắt đầu để nhận dạng, bất cứ khi nào một đốm màu chứa nhiều ký hiệu.
Một ý tưởng khác để tách các hình dạng:
ở mức lớn nhất khuyết điểm lồi Tách một đốm màu ở một khoảng cách tối thiểu nhất định so với ranh giới của đốm màu. CẢNH BÁO: Cách này hiệu quả nhất với các hình lồi và có thể không áp dụng cho hình của bạn #
biểu tượng
Phương án 4:
Trong bản nhạc, các ký hiệu cùng loại có xu hướng xuất hiện cùng nhau, chẳng hạn như # theo sau là một nốt trên cùng một dòng hoặc nhiều # ở đầu dòng theo một mẫu cụ thể. Đối với những ký hiệu có xu hướng tụ lại với nhau, có thể cần một bộ nhận dạng kết hợp đặc biệt.
(Đối với vấn đề đó, hiện tại bạn tách biểu tượng khỏi khuông nhạc bằng cách nào?)
Tôi là một lập trình viên xuất sắc, rất giỏi!