Viblo
  • Posts
  • Questions
  • Discussions
Announcements
No announcement yet.
All Announcements

Phạm Văn Toàn

@pham.van.toan

Report
  • Posts
  • Series
  • Questions
  • Answers
  • Clips
  • Followings
  • Followers
  • Tags
  • Reputations
  • Communication

[Deep Learning] Đánh giá chất lượng cây trồng thông qua ảnh (Evaluating quality of crops via images)

Phạm Văn Toàn
Answered Apr 25th, 2020 1:29 PM

Việc đầu tiên bạn cần quan tâm đến đó là dữ liệu. Có ý định thử nghiệm trên bộ dữ liệu sẵn nào không. Nếu không có dữ liệu có săn thì thu thập dữ liệu như thế nào. Xử lý nếu trực tiếp trên Pi thì nên thử nghiệm các phương pháp xử lý ảnh kết hợp với các thuật toán ML như SVM, Random Forest để gia tăng tốc độ. Sau đó hãy nghĩ đến việc thử cải tiến bằng Deep Learning. Hơn nữa nếu bạn định dùng Rapberry Pi để sử dụng chụp ảnh trên môi trường thực thì phải quan tâm đến việc duy trì nguồn điện như nào. Có cần kết nối với Wifi để gửi dữ liệu về hay không. Từ đó lựa chọn các thiết bị như PIN, Module kết nối mạng (3G hay Wifi) cho phù hợp

Chúc bạn thành công

+3

Có thể inference 1 model nhiều lần tại 1 thời điểm không? (pytorch , cpu)

Phạm Văn Toàn
Answered Apr 24th, 2020 10:35 AM

Theo như mình hiểu thì mỗi khi cần inference bạn lại load lại model nên dẫn đến việc tràn bộ nhớ (mỗi request lại load lại model 1 lần => trên máy vật lý tồn tại nhiều version khác nhau của 1 model ) nên chỉ có thể giới hạn số lượng request. Nếu thực sự bạn đang code như vậy thì bạn có thể sửa lại theo một số hướng:

  • Chỉ load model 1 lần trong 1 file constructor và load nó sẽ được chạy một lần khi run server và lưu lại ở trên RAM
  • Sử dụng ONNX convert model sang dạng pb của Tensorflow và sử dụng Tensorflow Serving để cải thiện tốc độ và tách phần model chạy độc lập với API
  • Sử dụng Redis Cache để gom số lượng request lại vào một batch và tiến hành inference 1 lần trên model. Tận dụng sức mạnh tính toán của phép nhân ma trận thay vì tình rời rạc từng request 1.
  • Tối giản lại mạng, nếu bạn đang sử dụng một kiến trúc quá lớn thì nên tìm cách cắt giảm số lượng parameters trong tính toán bằng một số kĩ thuật như model prunce, knowledge distiller
  • Nâng cấp RAM và GPU cho hệ thống

Ngoài ra nếu thực sự vì một lý do nào đó mà server của bạn chỉ có thể thực hiện được với số lượng request như vậy dù bạn đã thực hiện đúng các cách trên thì bạn có thể tìm hiểu thêm về các kĩ thuật scale và load balance server để adaptive được hệ thống khi có số lượng request quá lớn

Hi vọng sẽ giúp được bạn.

+2

Xử lý ảnh

Phạm Văn Toàn
Answered Oct 17th, 2019 2:56 AM

Bài toán này có thể chia làm 2 pharse là detect các kí tự (object detection) và pharse OCR. Với pharse detect các kí tự bạn có thể sử dụng các mô hình Deep Learning cho Object Detect để đạt độ hiệu quả cao tất nhiên đổi lại thì công súc chuẩn bị dữ liệu phải nhiều, đủ độ đa dạng về kích thước, điều kiện ảnh sáng, điều kiện môi trường (có bụi bẩn, kính công tơ bị mờ). Để đảm bảo tốc độ bạn nên custom các mô hình object detect của riêng mình hoặc nếu chưa có kinh nghiệm thì có thể sử dụng một số mô hình cho tốc độ tốt như SSD-Mobilenet vì các object trong trường hợp này cũng khá đơn giản. Sau khi cắ được các object thì có thể sử dụng một mạng CNN thông thường với 10 class để phân biệt từng số thay vì dùng một mạng sequence to sequence vì số lượng các kí tự đã cố định rồi.

+3

Cách cookpad xử lý tag, bài viết liên quan

Phạm Văn Toàn
Answered Apr 12th, 2019 5:53 AM

Bạn có thể sử dụng AI trong bài toán này nhé. Theo mình thì đây là bài toán phân loại hình ảnh khá phổ biến trong Deep Learning. Bạn có thể tìm hiểu các từ khóa về image classification và CNN hoặc có thể tham khảo bài viết này

https://viblo.asia/p/handbook-cv-with-dl-phan-2-bai-toan-phan-loai-hinh-anh-image-classification-voi-tensorflow-va-tensorboard-1Je5EJa1KnL

Sau khi bạn nhận dạng ra là món ăn gì thì cần mapping nó với một DB để có thể ra được các nguyên liệu tương ứng với món ăn đó.

Thân

0

Nhờ tư vấn về thu thập dữ liệu

Phạm Văn Toàn
Answered Jan 18th, 2019 8:46 AM

Chào bạn bạn có thể tham khảo hai opensource khá nổi tiếng có chức năng gần giống như GA (có dashboard, xem heatmap của trang ... ) nhưng có thể cài cắm trên server của mình và custom được source đó là Countly và Matomo

https://github.com/Countly

https://github.com/matomo-org/

+5

Nhận diện giọng noi

Phạm Văn Toàn
Answered Jan 7th, 2019 10:41 PM

Mình cũng có một chút ít kinh nghiệm trong mảng này nên hi vọng có thể giúp được bạn chút ít.

Bạn có thể xem qua video demo mà bên mình test hệ thống phát hiện phát âm sai cho tiếng anh ở link Video dưới đây.

Rất cảm ơn bạn đã đặt câu hỏi trên Viblo

+8

Hỏi về giá trị stride trong faster R-CNN?

Phạm Văn Toàn
Answered Jan 7th, 2019 4:02 AM

Mình cũng nghĩ nó sẽ dừng ở block thử 3. Nếu bạn dùng maxpooling2d qua mỗi lớp maxpool sẽ có stride=2stride = 2stride=2 nên với strides=16strides=16strides=16 sẽ cần qua 4 block 24=162^4 = 1624=16. Nếu strides=8strides = 8strides=8 thì cần 3 block 23=82^3 = 823=8

+3

Nên dùng model/solution nào detect vật nhỏ trong ảnh lớn?

Phạm Văn Toàn
Answered Jan 2nd, 2019 8:00 AM

Bạn thử tìm hiểu phương pháp này xem

https://medium.com/@jonathan_hui/understanding-feature-pyramid-networks-for-object-detection-fpn-45b227b9106c

+4

Cách tạo ra bounding box trong YOLO?

Phạm Văn Toàn
Answered Dec 28th, 2018 7:31 AM

Chào bạn. Câu hỏi của bạn có lẽ đang nói đến YOLOv2. Như phần trên bạn đã đưa ra câu hỏi. YOLO sẽ chia ảnh của chúng ta thành các ô cố định (giả sử grid có kích thước10x10) và trong mỗi ô nhỏ đó sẽ chịu trách nhiệm dự đoán một object nếu như tâm (centroid) của object được phát hiện nằm trong ô nhỏ này (tức là conffidence score lớn hơn một ngưỡng nào đó giả sử là 0.25).

  • Dựa vào đâu để hình thành bounding box?

Để dự đoán người ta sử dụng CNN layers để dự đoán các tham số của box chứa object dựa vào các box mẫu (anchor boxes) tức là các box có kích thước được định nghĩa trước. Giống như trong Faster RCNN sau đó dựa vào các box mẫu này để tinh chỉnh tọa độ cho phù hợp với objects.

  • Dùng k-clustering ra sao?

Để training ra các anchors này chúng ta cần sử dụng K-Clustering và cần phải có một độ đo để dùng làm hàm loss. Như trong YOLOv2 sử dụng IOU (Intersection Over Union, thể hiện độ khớp của prediction box so với ground-truth box). Thay đổi số lượng centroids cho phù hợp với nhu cầu của bạn (về cơ bản càng nhiều cụm thì chỉ số IoU càng tăng - càng khớp với ground-truth)

+1

Nhờ mọi người khai thông về việc ứng dụng AI vào Business Analysis.

Phạm Văn Toàn
Answered Dec 11th, 2018 6:51 AM

Theo mình nghĩ thì ý của bạn là:

  • Hiện tại đang có dữ liệu về các chỉ số kinh doanh trong khoảng thời gian (ví dụ từ 2000 đến 2018) trong đó bao gồm các số liệu như sản lượng, số lượng nhân viên, số giờ làm việc, doanh thu, số lượng khách hàng, lợi nhuận, số nợ ...
  • Muốn dựa vào các thông số đó để đưa ra (dự đoán) được các hướng giải quyết tiếp theo.

Với dạng bài toán này bạn có thể tham khảo một số hướng tiếp cận:

  • Thứ 1: Có thể coi dữ liệu của bạn thuộc vào dạng time series tức là việc coi rằng dữ liệu trong quá khứ (nguyên nhân) sẽ có ảnh hưởng đến dữ liệu (kết quả) của thời điểm hiện tại. Bạn có thể tìm hiểu theo từ khóa time series analysis for business forecasting.

  • Thứ 2: Có thể coi bài toán của bạn dưới dạng Feature Engineering và Regression tức là tìm ra các đặc trưng trong dữ liệu và các mối liên quan giữa chúng. Ví dụ sự liên quan giữa lợi nhuận và các khoản còn lại. Và việc của mô hình bạn xây dựng sẽ để học các mối liên quan đó. Sau khi mô hình học xong sẽ cho ra các trọng số xác định độ quan trọng (mức độ liên quan) giữa các đại lượng khác đến lợi nhuận của bạn, từ đó cho bạn bức tranh tổng quát về tình hình kinh doanh, và gợi ý cho bạn cần phải thay đổi những điều gì.

  • Thứ 3: Machine Learning chỉ là một bước đi tiếp sau để cải tiến hiệu quả của các mô hình thống kê và tư vấn chuyên gia nên mình nghĩ trước tiên bạn nên phân tích các đại lượng thống kê, các chỉ số thật kĩ trước khi áp dụng ML vào bài toán này

Một vài ý kiến hi vọng có thể hữu ích với bạn.

+3

code php download url ảnh về serve

Phạm Văn Toàn
Answered Jul 3rd, 2018 2:20 AM

Bạn có thể sử dụng thư viện này có hỗ trợ download các ảnh theo keyword luôn

https://github.com/hardikvasa/google-images-download

+5

Trí tuệ nhân tạo nên bắt đầu từ đâu?

Phạm Văn Toàn
Answered May 14th, 2018 1:04 AM

Nếu bạn là công ty đang kinh doanh thì mình khuyên là nên thuê một đội ngũ chuyên gia để tư vấn, triển khai và quản lý hệ thống giúp bạn vì mình thấy với yêu cầu của bạn khá chung chung. Còn nếu bạn đang muốn thực hiện một dự án cá nhân với mục tiêu học hỏi thì mình có thể gợi ý cho bạn một số ý như sau:

Bạn cần tư vấn cho khách hàng theo hình thức như thế nào? Mình thử dưa ra một vài ý tưởng cho bạn nhé.

  • Tư vấn theo dạng kênh giao tiếp bằng tin nhắn: Đây là một hình thức tư vấn gọi là Chatbot, tức là khi khách hàng nhắn tin đến cho công ty của bạn, máy sẽ tự động trả lời lại để tư vấn các sản phẩm phù hợp. Tức là máy có thể hiểu được yêu cầu của con người.

  • Tư vấn theo dạng kênh giao tiếp bằng giọng nói: Thêm vào bước Chatbot bên trên là hai hệ thống biến giọng nói thành chữ (Speech to text) và ngược lại (Text to speech) để gúp cho người dùng có thể giao tiếp với hệ thống của bạn thông qua giọng nói như giao tiếp thông thường

  • Tư vấn dựa trên xử lý hình ảnh (Computer Vision): hãy tưởng tượng bạn sử dụng camera để nhận diện hình ảnh của bạn và hệ thống sẽ tư ván cho khách hàng những gu thời trang và các sản phẩm quần áo phù hợp.

Sau khi bạn có được ý tưởng rồi thì liên hệ với mình mình sẽ tư vấn tiếp giúp bạn.

+4

[Android] App dịch morse.

Phạm Văn Toàn
Answered May 8th, 2018 1:55 AM

Theo mình bạn có một vài lựa chọn tùy vào mức độ phức tạp của yêu cầu bài tập lớn:

Về cơ bản bài toán này bao gồm 4 bước chính:

  1. ghi âm morse code từ microphone

  2. nhận dạng thời gian bắt đầu và kết thúc của các tones

  3. xây dựng chuỗi các dots and dashes.

  4. dịch chúng thành text

Vậy bạn có thể có hai cách để thực hiện

  1. Sử dụng các package có sẵn của Android, bạn có thể tham khảo một project mẫu tại đây.

  2. Xây dựng bộ nhận dạng thủ công. Về cơ bản thì morse code dạng âm thanh của một kí tự là không thay đổi. Bạn cần chuẩn bị tập dữ liệu mẫu các morse code này. Tuy nhiên khi đọc vào từ micro thì sẽ có nhiễu khiến cho âm thanh thu được không còn giống như morse code mẫu nữa do đó bạn cần phải tìm xem âm đọc vào gần đúng nhất với morse code nào. Đây là một bài toán (recognition - nhận dạng) và bạn có thể áp dụng phương pháp tính độ tương tự để tìm độ tương tự lớn nhất cho âm được đọc vào từ micro. Cách này đơn giản nhưng độ chính xác không cao. Để nâng cao độ chính xác bạn có thể sử dụng các phương pháp Machine Learning như SVM hoặc mạng nơ ron nhân tạo để cải thiện độ chính xác của bài toán nhận dạng.

Chúc bạn thực hiện bài tập lớn thành công

+5

Hỏi về việc xây dựng chức năng Run code trực tiếp trên web

Phạm Văn Toàn
Answered Mar 12th, 2018 1:28 AM

Đầu tiên bạn cần có một editor để mọi người có thể vào viết code bạn có thể tham khảo editor này

Sau đó bạn cần gửi code lên server để biên dịch code đó và cuối cùng là hiển thị kết quả trả về phía client-slide. Nếu bạn sử dụng Javascript thì có thể render trực tiếp kết quả này trên trình duyệt của người dùng.

Bạn có thể tham khảo một số service đã hỗ trợ sẵn cả 3 tính năng trên như anh bạn CodePen hoặc anh bạn Plunkr.

Ngoài ra bạn có thể chạy một số complier phía client như Brython nhưng theo mình nghĩ nó không được đầy đủ.

+4

Machine learning

Phạm Văn Toàn
Answered Oct 23rd, 2017 6:29 AM

Mình chưa hiểu ý của bạn lắm. Có phải bạn muốn tìm một mô hình máy học để nhận dạng chữ số nào ở tọa độ (x, y) trên bàn cờ không

0

tìm sách

Phạm Văn Toàn
Answered Sep 26th, 2017 6:32 AM

Mình suggest thêm một cuốn nữa viết về Thuật toán nhé. Mình thấy ngoài quyển Toán rời rạc và Cấu trúc dữ liệu giải thuật của thầy Nghĩa ra thì bạn có thể tham khảo thêm quyển Giải thuật và lập trình của Lê Minh Hoàng

http://is.ptithcm.edu.vn/~tdhuy/Programming/Giai_thuat_va_Lap_trinh.pdf

0

Người mới học Python nên tìm hiểu ở đâu?

Phạm Văn Toàn
Answered Sep 1st, 2017 3:39 AM

Mình thường đọc ở trang này https://www.tutorialspoint.com/python/ và đọc trực tiếp trên docs của Python https://www.python.org/doc/

+2

Responsive web

Phạm Văn Toàn
Answered Aug 16th, 2017 1:38 AM

Thiết kế mobile first tức là giao diện cho mobile đầu tiên sau đó mới tới những thiết bị khác như ipad, laptop, desktop … Chính vì thế nên Khi viết css Mobile-first ta chủ dùng min-width thôi. Tức là thiết bị có chiều rộng tối thiểu sẽ được áp dụng css

@media all and (min-width: 320px){}. 

Cần phải tuân thủ 4 tiêu chí của responsive là:

  • A fluid grid
  • Fluid images & Videos
  • Media queries: (CSS3)
  • Responsive Navigation

Có một số Framework áp dụng tốt cho Css responsive như là Bootstrap, Foundation nên học cách sử dụng

+3

Quy trình review một bài báo khoa học là gì?

Phạm Văn Toàn
Answered Aug 9th, 2017 1:59 AM

Theo tìm hiểu của mình thì sau khi gửi bài đến hội nghị sẽ được phân chia các nhóm reviewer để review bài của mình. Sau khi review nhóm đó sẽ quyết định bài báo của mình có được chấp nhận hay không (thời gian khoảng từ 1 tháng đến 4 tháng tùy vào hội nghị). Có một vài quyết định khi review bài báo của bạn như

  • Chấp nhận (A - Publish Unaltered)
  • Chấp nhận với chỉnh sửa nhỏ (AQ - Minor revision)
  • Chỉnh sửa lớn (RQ - Major revision)
  • Từ chối ngay (R - Reject)

Thông thường sẽ ít khi nhóm review cho A ngay từ lần đầu mà sẽ có comment để chỉnh sửa (để cho họ còn có công review 😄). Nếu không bị Reject thì bạn sẽ phải chỉnh sửa bài báo cho phù hợp với những comment của người review hoặc có ý kiến phản hồi lại các comment của họ.

Tiêu chí để được chấp nhận thì cũng khá là hên xui tùy vào cảm xúc của người review nhưng ít nhất thì cũng có một vai điểm cần chú ý khi viết paper kĩ thuật đó là

  • Nên viết bằng latex
  • Các công thức phải chính xác
  • Hình vẽ phải dễ hiểu và rõ ràng.
+2

Total post views

286.7K

Reputations

13728

Following tags

8

Following users

68

Followers

844

Posts

58

Clips

11

Total questions

1

Total answers

19

Technical skills


Machine Learning Machine Learning Deep Learning

Organization


Avatar
Sun* R&D Lab
43 79 249
Avatar
Sun* AI Research Team
231 23 382

Posts tendency


Resources

  • Posts
  • Organizations
  • Questions
  • Tags
  • Videos
  • Authors
  • Discussions
  • Recommend System
  • Tools
  • Machine Learning
  • System Status

Services

  • Viblo CV Viblo Code
  • Viblo CV Viblo CV
  • Viblo CTF Viblo CTF
  • Viblo Learning Viblo Learning

Mobile App

Get it on Google Play Download on the App Store
QR code

Links

  • Atom Icon

© 2021 Viblo. All rights reserved.

  • About Us
  • Feedback
  • Help
  • FAQs
  • RSS
  • Terms
  • DMCA.com Protection Status