Nhận dạng chữ viết tay (Handwriting recognition - HWR), còn được gọi là Nhận dạng văn bản viết tay (Handwritten Text Recognition - HTR), là khả năng máy tính nhận và giải thích dữ liệu chữ viết tay dễ hiểu từ các nguồn như tài liệu giấy, ảnh, màn hình cảm ứng và các thiết bị khác. Hình ảnh của văn bản viết có thể được cảm nhận "tắt dòng" từ một mảnh giấy bằng cách quét quang học (nhận dạng ký tự quang học) hoặc nhận dạng từ thông minh. Ngoài ra, các chuyển động của đầu bút có thể được cảm nhận "trên đường", ví dụ như bề mặt màn hình máy tính dựa trên bút, một công việc thường dễ dàng hơn vì có nhiều manh mối hơn. Một hệ thống nhận dạng chữ viết xử lý định dạng, thực hiện phân đoạn chính xác thành các ký tự và tìm các từ hợp lý nhất.
Nhận dạng chữ viết tay ngoại tuyến liên quan đến việc tự động chuyển đổi văn bản trong hình ảnh thành mã chữ cái có thể sử dụng được trong các ứng dụng xử lý văn bản và máy tính. Dữ liệu thu được từ biểu mẫu này được coi là biểu diễn tĩnh của chữ viết tay. Nhận dạng chữ viết tay ngoại tuyến tương đối khó, vì những người khác nhau có phong cách viết tay khác nhau. Và, cho đến ngày nay, các công cụ OCR chủ yếu tập trung vào văn bản in bằng máy và ICR cho văn bản "in" (viết bằng chữ in hoa).
Nhận dạng ký tự ngoại tuyến thường liên quan đến việc quét một biểu mẫu hoặc tài liệu được viết vào lúc nào đó trong quá khứ. Điều này có nghĩa là các ký tự riêng lẻ có trong hình ảnh được quét sẽ cần phải được trích xuất. Công cụ đang tồn tại có khả năng thực hiện bước này.[1] Tuy nhiên, có một số khiếm khuyết phổ biến trong bước này. Phổ biến nhất là khi các ký tự được kết nối được trả về dưới dạng một hình ảnh phụ duy nhất chứa cả hai ký tự. Điều này gây ra một vấn đề lớn trong giai đoạn công nhận. Tuy nhiên, nhiều thuật toán có sẵn giúp giảm nguy cơ các ký tự được kết nối với nhau.
Sau khi trích xuất các ký tự riêng lẻ xảy ra, một công cụ nhận dạng được sử dụng để xác định ký tự máy tính tương ứng. Một số kỹ thuật nhận dạng khác nhau hiện đang có sẵn.
Khai thác tính năng hoạt động theo cách tương tự như nhận dạng mạng thần kinh. Tuy nhiên, các lập trình viên phải tự xác định các thuộc tính mà họ cảm thấy là quan trọng.