Khai báo pretrained models cho 'Nhận diện người nổi tiếng'

aivivn_face_recognition

#1

Để đảm bảo tính công bằng của cuộc thi, BTC xin bổ sung luật cho cuộc thi ‘Nhận diện người nổi tiếng’ ở đây:

  1. Các đội được phép sử dụng pretrained model nhưng không được sử dụng dữ liệu từ ngoài.

  2. Các pretrained model được sử dụng là các model được liệt kê trong thread này trước 23h59 ngày 27/3/2019. Các đội có trách nhiệm liệt kê model đội mình sử dụng nếu chưa có đội nào khác liệt kê. Việc khai báo này bao gồm tên và link tới model.

Các đội sử dụng model không được liệt kê trong thread ngày trước thời điểm trên sẽ không được xem xét tính giải thưởng.

Các đội chú ý phải nộp một github repo về giải pháp của đội, BTC và các đội khác sẽ kiểm chứng trong code.

Cảm ơn các bạn.


#2

Theo em thấy có thể làm như admin bảo để chống gian lận, nhưng hạn cuối nộp nên là 1 ngày trước cuộc thi kết thúc, hoặc là phải gửi link model ẩn cho ban tổ chức ( chỉ ban tổ chức biết ). Vì nếu public link ở đây thì khác gì public thuật toán mà mình dùng trong cuộc thi trước nhiều ngày còn chưa kết thúc cuộc thi.


#3

@Tiep:Thay vì vậy thì ra luật là pretrained model đó phải được public trước ngày cuộc thi bắt đầu (có dẫn paper, link download đi kèm chẳng hạn). Ở vòng cuối cùng BTC sẽ verify cái này, vừa đảm bảo là không đội nào dùng data riêng để tạo pretrained model, vừa đảm bảo tính cạnh tranh, đỡ copy.


#4

Nếu nhiều đội có chung ý kiến thì BTC sẽ xem xét lùi lịch lại 1-2 ngày.


#5
  • VGGFace2:

https://github.com/ox-vgg/vgg_face2

  • Pretrained model ở đây:

https://github.com/ZhaoJ9014/face.evoLVe.PyTorch

  • ArcFace/Insight_Face:

https://github.com/TreB1eN/InsightFace_Pytorch


#6

VGGFace Keras :

https://github.com/rcmalli/keras-vggface

Facenet :smile: :

https://github.com/davidsandberg/facenet

ArcFace :

https://github.com/onnx/models/tree/master/models/face_recognition/ArcFace


#7

Lý do của bạn đưa ra “nếu public link ở đây thì khác gì public thuật toán” cái này mình không đồng ý. Ví dụ: bạn sử dụng pretrained model A và không làm gì cả, chỉ so sánh embedding vector mà model A trả về và đạt được kết quả 95% chẳng hạn. Một người khác sử dụng pretrained model B, sử dụng embedding đạt kết quả 91%, sau đó làm rất nhiều thí nghiệm với data mà cuộc thi cung cấp, nhưng chỉ improve được accuracy là 93%. Theo bạn thì A hay B là người xứng đáng thắng?

Quan điểm của mình: public pretrained model là tạo sự công bằng cho các thí sinh, để mọi người có cùng xuất phát điểm để tự do phát triển “thuật toán” của bản thân, chứ không phải “google search” + “git clone” -> auto win.


#8

Em đang định trả lời ý này :blush: . Em hoàn toàn đồng ý. Bài toán này có nhiều mã nguồn mở, có lẽ các bạn sợ public model vì sợ người khác biết mã code đó. Người đó có thể thắng cuộc thi, nhưng không có gì là “của mình” ở đây cả.

Theo em thấy có thể làm như admin bảo để chống gian lận, nhưng hạn cuối nộp nên là 1 ngày trước cuộc thi kết thúc, hoặc là phải gửi link model ẩn cho ban tổ chức ( chỉ ban tổ chức biết ). Vì nếu public link ở đây thì khác gì public thuật toán mà mình dùng trong cuộc thi trước nhiều ngày còn chưa kết thúc cuộc thi.

Theo mình thì public pretrained model không có nghĩa là bạn phải trình bày cách làm của bạn. Có thể bạn dùng siamse, tripletloss, SVM, K-NN thì chả ai biết được. Nó cũng k có nghĩa là mình có thể reprocedure lại kết quả của ban đang có. Mình thấy việc này rất là bình thường :smiley:


#9

Theo mình biết thì đó gọi là kĩ năng survey đó bạn, cũng là 1 trong những kĩ năng của Ai Engineer . Thử , test, sai, thử ,…


#10

Đồng ý :smiley: đó là lý do tại sao deadline cho việc chia sẻ pretrained model là 1 tuần trước khi cuộc thi kết thúc. Kỹ năng survey của bạn tốt, bạn mất có vài ngày để tìm ra pretrained model tốt, thì bạn có nhiều thời gian hơn những người khác để thực hiện thuật toán của bạn. Trong khi đó, những người không có kỹ năng survey tốt bằng, thì họ chỉ có 1 tuần để thử với pretrained model mà bạn chọn. Như thế không phải là bạn đã có lợi thế rồi sao?


#11

hi, trong cái list Pretrained bác share có phần này, thì có được sử dụng không ?


#12

Anh Đức tham gia Kaggle cũng lâu rồi và mình cũng đồng ý với quan điểm của anh.

Các cuộc thi của Kaggle đều có 1 thread external data disclosure và mọi người đều vui vẻ chia sẻ những model mà mình tìm được, thậm chí còn upload lên 1 public dataset để những người khác có thể dùng được luôn trong kernel.

Mình thấy người VN và TQ trên kaggle có vẻ rất câu nệ hơn thua, ít khi chia sẻ, google được cái gì hay thì cũng giữ cho mình sợ mất lợi thế. Tất nhiên đây là 1 cuộc thi nên làm thế cũng không sai, chỉ là theo mình nó không phải lối tư duy tốt. Cái gì bạn tự nghĩ ra, tự mày mò thì giữ riêng là đúng, mình không có ý kiến, nhưng giả sử trong trường hợp này trên mạng có hàng trăm cái public models, bạn may mắn tìm được 1 cái tốt hơn hẳn những cái còn lại, sau đó nơm nớp giữ bí mật sợ người ta tìm được rồi vượt lên, mình khẳng định ai đó chắc chắn sẽ tìm được và vượt lên. 100%.

Bestfitting từng chia sẻ rằng khi tiếp cận một cuộc thi, mục tiêu của anh ấy không phải là đạt điểm cao nhất, mà là tạo được 1 model mà khi người ra đề nhìn vào họ muốn sử dụng ngay trong production. Bạn thử tự hỏi mình xem, những người ra đề của cuộc thi này liệu đã biết đến public model bí mật mà bạn tìm được chưa, và họ trong đợi điều gì ở các bạn.


#13

Minh nghi no la pretrained model va da public o day thi tat ca moi nguoi deu biet va deu co the su dung.


#14

Ok mọi người. Em chưa thi nhiều nên cũng ko rõ :smiley:


#15

Mình sử dụng VGGFace Keras làm pretrained model. Do mình mới học computer vision có 2 tuần nên mới chỉ biết viết Keras

`https://github.com/rcmalli/keras-vggface`
  • Mọi người cho mình hỏi thăm, vì sao 1 hình lại có 5 kết quả dự đoán, thế là thế nào nhỉ, nếu keras nó chạy phân loại thì nó ra 1 kết quả thôi chứ

#16

Ta có thể hiểu đây là bài toán phân loại với 1000 nhãn. Khi dự đoán 1 ảnh, thì output ra sẽ là một mảng 1000 phần tử tương ứng với 1000 nhãn. Mỗi phần tử sẽ là xác suất mà mô hình dự đoán ảnh đó thuộc về lớp tương ứng (ví dụ phần tử thứ nhất sẽ là xác suất ảnh đó thuộc về nhãn 0). Độ đo của bài toán này là top-5 tức là lấy 5 nhãn có xác suất cao nhất mà mô hình dự đoán ảnh đó thuộc về. Bạn có thể google search top-k accuracy để biết rõ hơn.


#17

Cảm ơn bạn nhiều, mình đang đọc cuốn deeplearning cho python, thấy có cuộc thi nên vào vừa học vừa làm thử. Chúc các anh chị có cuộc thi vui vẻ.


#18

Mình có sử dụng Dlib nhé, nhưng có vẻ k được tốt lắm :slight_smile:


#19

model của em tự finetune từ facenet (cấu trúc giống hệt facenet) trên tập dữ liệu deepglint link drive từ t10/2018, align bằng mtcnn (112x112), mọi người có thể sử dụng, có thể kết quả không được như ý


#21

Chúng ta giống nhau rồi bác!