2012-07-11 52 views
7

Tôi đang nhận dạng đơn giản các chữ cái và chữ số với các mạng thần kinh. Cho đến bây giờ tôi đã sử dụng mọi pixel của hình ảnh chữ cái làm đầu vào cho mạng. Không cần phải nói cách tiếp cận này tạo ra các mạng rất lớn. Vì vậy, tôi muốn trích xuất các tính năng từ hình ảnh của tôi và sử dụng chúng làm đầu vào cho các NN. Câu hỏi đầu tiên của tôi là những gì thuộc tính của các chữ cái là tốt cho việc nhận ra chúng. Câu hỏi thứ hai là cách thể hiện các tính năng này như đầu vào cho mạng thần kinh. Ví dụ, tôi có thể đã phát hiện tất cả các góc trong các chữ cái và có chúng như là một vector của (x, y) điểm. Làm thế nào để chuyển đổi vector này thành một cái gì đó phù hợp cho một NN (như các kích thước vector có thể khác nhau cho các chữ cái khác nhau).Trích xuất tính năng từ các mạng thần kinh

Trả lời

3

Rất nhiều người đã sử dụng nhiều tính năng cho OCR. Đơn giản nhất trong số đó là tất nhiên, chuyển trực tiếp các giá trị pixel.

Có dữ liệu nhận dạng chữ trong các mẫu OpenCV, được trích xuất từ ​​tập dữ liệu UCI. Nó sử dụng khoảng 16 tính năng khác nhau. Kiểm tra SOF này: How to create data fom image like "Letter Image Recognition Dataset" from UCI

Bạn cũng có thể xem bài viết giải thích điều này trong một câu trả lời của nó. Bạn có thể nhận được nó bằng cách googling.

Bạn cũng có thể quan tâm đến this PPT. Nó đưa ra một giải thích ngắn gọn về các kỹ thuật khai thác tính năng khác nhau được sử dụng ngày nay.

4

Bài viết này, Introduction to Artificial Intelligence. OCR using Artificial Neural Networks by Kluever (2008) cho một khảo sát gồm 4 tính năng kỹ thuật trích xuất cho OCR sử dụng mạng nơron. Ông mô tả các phương pháp sau:

  • Mã hóa độ dài chạy (RLE): Bạn cần hình ảnh nhị phân cho điều này (nghĩa là, chỉ trắng hoặc đen). Chuỗi nhị phân có thể được mã hóa thành một biểu diễn nhỏ hơn.
  • Phát hiện cạnh: Tìm các cạnh. Bạn có thể khá thô lỗ với điều này, vì vậy thay vì trả về các tọa độ chính xác (x, y) bạn có thể giảm ma trận bằng cách chỉ đếm nếu cạnh đó xảy ra ở các vị trí bị giảm (ví dụ, trên 20%, 40%, 60 & và 80 % của hình ảnh).
  • Đếm 'Điểm ảnh thực sự': Điều này làm giảm thứ nguyên từ width * height ma trận hình ảnh thành width + height. Bạn sử dụng véc tơ widthheight làm đầu vào riêng biệt.
  • Nhập bằng ma trận cơ bản: Bạn đã thử điều này; Nhập toàn bộ ma trận cho kết quả tốt, nhưng khi bạn nhận thấy có thể dẫn đến chiều cao và thời gian đào tạo cao. Bạn có thể thử nghiệm với việc giảm kích thước hình ảnh của bạn (ví dụ: từ 200x200 đến 50x50).
1

Nếu bạn có vectơ đầu vào chiều rất cao, thì tôi khuyên bạn nên áp dụng phân tích thành phần chính (PCA) để loại bỏ các tính năng dư thừa và giảm kích thước của vector đối tượng.

Các vấn đề liên quan