Kinect, thiết bị nhận dạng cơ thể lên kệ Bắc Mỹ ngày 4/11/2010, là một trong những câu chuyện thú vị nhất về cách máy tính học nhìn thấy con người. Cách nó làm được điều đó không nằm ở chiếc camera, mà ở một ý tưởng khác thường của nhóm nghiên cứu Microsoft tại Cambridge: dạy máy bằng một triệu con người không có thật.

Tóm tắt nhanh

Các hệ nhận dạng dáng người trước đó bám theo một bộ xương ảo từ khung hình này sang khung hình khác, nên dễ lạc và phải khởi động lại. Nhóm của Jamie Shotton đổi cách hỏi: thay vì theo dõi chuyển động, máy nhìn từng điểm ảnh độ sâu và quyết định nó thuộc bộ phận nào trong 31 vùng cơ thể. Nhờ vậy mỗi khung hình đều làm lại từ đầu, không cần dang tay chờ máy, và chạy kịp trên chip đồ hoạ của Xbox 360.

Diễn biến chính

Lúc bán chạy kỷ lục

Kinect ra mắt Bắc Mỹ ngày 4/11/2010, giá khoảng 150 USD. Theo số liệu Microsoft cung cấp, sau 60 ngày đã có 8 triệu chiếc đến tay người mua, trung bình hơn 133 nghìn chiếc mỗi ngày, và sách kỷ lục Guinness ghi nhận đây là thiết bị điện tử tiêu dùng bán nhanh nhất từng có. Nhưng khoảng một năm rưỡi trước đó, ngay cả những người làm ra nó cũng chưa chắc nó trụ nổi quá một phút.

2005–2006: camera độ sâu và bộ bám theo cũ

Phần cứng đến từ PrimeSense, công ty Israel thành lập năm 2005. Camera chiếu một màn chấm hồng ngoại lên căn phòng, đo độ méo của các chấm để tính khoảng cách, cho ra ảnh độ sâu chạy được cả trong tối và không bị màu áo đánh lừa. Theo lời kể, Alex Kipman đã chú ý tới PrimeSense từ một hội nghị làm game năm 2006. Nhóm Xbox cũng có sẵn bộ bám theo kiểu cũ, nhưng theo lời kể của Microsoft Research, nó bắt người chơi dang tay để khởi động, sụp khi cử động nhanh và có thể hỏng sau khoảng một phút.

2008: lá thư tới Cambridge

Tháng 9/2008, một kỹ sư Xbox gửi email cho Jamie Shotton, người mới vào phòng nghiên cứu Microsoft ở Cambridge khoảng ba tháng. Shotton từng làm tiến sĩ thị giác máy tính, làm việc cho Toshiba và vừa đoạt giải demo hay nhất tại hội nghị CVPR 2008. Đội dần hình thành với Andrew Fitzgibbon, Andrew Blake, Toby Sharp, và từ tháng 12/2008 có thêm Mat Cook lo phần dữ liệu. Nhóm Xbox đặt điều kiện: chạy 30 lần mỗi giây, nhận ra mọi vóc dáng ngay từ đầu và chỉ dùng chừng một phần mười sức mạnh của Xbox 360.

2009: rừng quyết định và người ảo

Thay vì bám đuôi, nhóm hỏi từng điểm ảnh thuộc bộ phận nào. Máy tô một «bộ đồ nhuộm màu» gồm 31 mảng lên cơ thể. Mỗi câu hỏi chỉ so độ sâu của tối đa ba điểm ảnh với tối đa năm phép tính; ba cây, mỗi cây sâu 20 tầng, bỏ phiếu cho từng điểm. Để có dữ liệu, Cook ghi khoảng 500 nghìn khung chuyển động thật, lọc còn chừng 100 nghìn tư thế, rồi khoác lên nhiều thân hình ảo để tạo khoảng một triệu ảnh độ sâu đã gắn nhãn sẵn. Lần huấn luyện đầu mất cả tuần, sau đó rút còn một ngày khi chia cho cụm khoảng 1.000 lõi. Các điểm ảnh cùng màu được gom cụm để tìm vị trí ba chiều của từng khớp, và cách này cũng xử lý được nhiều người trong khung hình.

6/2009 và 1/2010: màn trình diễn đi trước thuật toán

Tháng 6/2009 tại E3, Microsoft vén màn Project Natal với sự có mặt của Steven Spielberg, trong khi thuật toán bên trong còn gần bảy tháng nữa mới xong. Thử nghiệm ở mười hộ gia đình khiến cả nhóm bất ngờ: trên ảnh người thật, máy làm tốt hơn trên chính ảnh ảo dùng để luyện. Tháng 1/2010 thuật toán hoàn tất, mỗi khung hình được tô xong trong chưa tới 5 mili giây.

2010–2017: bẻ khoá, vinh danh và ngừng sản xuất

Ngay hôm lên kệ, Adafruit treo thưởng cho ai viết được phần mềm mã nguồn mở để dùng Kinect với máy tính thường, rồi nâng tiền thưởng lên 3.000 USD; Héctor Martín hoàn thành chỉ sau vài ngày. Tháng 6/2011, nhóm Cambridge nhận giải MacRobert của Viện Hàn lâm Kỹ thuật Hoàng gia Anh, và bài báo nhận giải bài báo xuất sắc nhất tại CVPR 2011. Tháng 3/2011 Microsoft báo bán 10 triệu máy, và tháng 2/2012 ra Kinect cho Windows giá 250 USD. Sau đó game cho Kinect thưa dần; bản Xbox 360 ngừng sản xuất tháng 4/2016, bản Xbox One được Kipman xác nhận ngừng ngày 25/10/2017, với tổng khoảng 35 triệu máy.

Điều còn tranh cãi hoặc cần thận trọng

  • Con số 5 mili giây là thời gian tính toán của riêng thuật toán trên chip đồ hoạ. Camera vẫn chỉ chụp 30 hình mỗi giây nên người chơi không cảm thấy máy nhanh đến thế.
  • Kỷ lục 8 triệu máy dựa trên số liệu do Microsoft đưa cho Guinness; có người đặt câu hỏi đó là máy đến tay người mua hay chỉ giao cho cửa hàng.
  • Chuyện hậu trường ở Cambridge, từ lá thư đến câu nói của Fitzgibbon, phần lớn do chính Microsoft kể lại. Bài báo có tám tác giả và kỹ sư Xbox mới dựng hệ thống thật, nên gọi riêng ai là cha đẻ của Kinect là kể thiếu.
  • Chuyện bẻ khoá: theo lời kể, kỹ sư Johnny Lee đã bí mật góp tiền vào quỹ thưởng của Adafruit, nhưng sau đó Kipman nói Kinect không hề bị bẻ khoá, cổng cắm được cố ý để mở. Hai phát ngôn này mâu thuẫn nhau.
  • Học sâu: đây không phải học sâu, mà chỉ là ba cây quyết định.

Vì sao câu chuyện này đáng nhớ?

Bước ngoặt không nằm ở chiếc camera hay một thuật toán thông minh hơn, mà ở việc đổi câu hỏi: từ «người này vừa đi đâu» sang «điểm ảnh này là gì». Một bài toán bám đuôi dễ lạc trở thành bài toán phân loại có thể làm lại từ đầu mỗi khung hình. Trí nhớ không biến mất hoàn toàn, vì kỹ sư Xbox vẫn làm mượt khung xương theo thời gian, nhưng nó chỉ còn là lớp sơn bên ngoài chứ không phải cái móng.

Điều thứ hai là dữ liệu: khi thiếu, nhóm không đi xin mà tự chế tạo. Việc dùng đồ hoạ để vẽ người không phải ý tưởng mới, nhưng đưa một triệu người ảo vào một sản phẩm có mặt trong hàng triệu phòng khách thì hiếm ai làm trước đó. Ngày nay ngày càng nhiều mô hình AI được luyện bằng dữ liệu do chính máy sinh ra, và Kinect là một tiền lệ sớm. Năm 2013 Apple mua lại PrimeSense, và những con mắt đo độ sâu ấy còn xuất hiện trong HoloLens, tính năng mở khoá bằng khuôn mặt, robot và bài tập phục hồi chức năng.

Câu hỏi thường gặp

Kinect nhận ra tay chân người chơi bằng cách nào?

Kinect dùng camera độ sâu để có ảnh chỉ gồm khoảng cách. Một thuật toán gồm ba cây quyết định tô từng điểm ảnh vào một trong 31 vùng cơ thể, rồi từ các vùng ấy suy ra vị trí khớp. Mỗi khung hình được xử lý lại từ đầu, không cần nhớ khung trước.

Vì sao cách bám theo khung xương cũ không dùng được?

Theo lời kể của Microsoft Research, nguyên mẫu cũ bắt người chơi dang tay để khởi động, sụp đổ khi cử động nhanh và có thể hỏng sau khoảng một phút. Các hệ bám từng khung hình cũng khó tự khởi động lại sau khi lạc.

Máy học từ dữ liệu nào khi không thể tô tay hàng triệu ảnh người thật?

Nhóm dùng khoảng 500 nghìn khung chuyển động thật, lọc còn chừng 100 nghìn tư thế, rồi khoác lên nhiều thân hình ảo khác nhau để tạo khoảng một triệu ảnh độ sâu đã gắn nhãn sẵn.

Kinect bán được bao nhiêu máy?

Microsoft báo 8 triệu máy trong 60 ngày đầu và 10 triệu máy đến tháng 3/2011. Tổng cộng khoảng 35 triệu máy được bán trước khi ngừng sản xuất. Số kỷ lục Guinness do chính Microsoft cung cấp.

Khi nào Kinect ngừng sản xuất?

Bản cho Xbox 360 ngừng sản xuất tháng 4/2016. Ngày 25/10/2017, Alex Kipman xác nhận bản cho Xbox One cũng sẽ không được làm nữa. Azure Kinect, ra đời sau đó, tắt hẳn năm 2023.

Kinect có dùng học sâu không?

Không. Kịch bản nhấn mạnh thuật toán chỉ gồm ba cây quyết định, không có học sâu. Điểm đáng chú ý là cách đổi câu hỏi và việc tạo dữ liệu bằng đồ hoạ máy tính.

Nguồn tham khảo

  • Shotton và cộng sự, bài báo CVPR 2011 về nhận dạng tư thế người từ ảnh độ sâu
  • Microsoft Research, bài viết về nhóm Cambridge và Kinect
  • Wikipedia, mục «Kinect»
  • Christian Science Monitor, Shacknews, RCPmag (tháng 3/2011) về kỷ lục Guinness
  • TechCrunch về việc ngừng sản xuất Kinect năm 2017
  • EFF, HITB và HotHardware về chuyện bẻ khoá Kinect
  • Scientific American (qua kurtsh.com, 2010) về cảnh quay dữ liệu chuyển động

Bài viết tóm tắt từ video của kênh; nội dung mang tính giới thiệu.