Recent Posts

More Posts

Edition: Pre-fascicle 1A (Revision -99). [Đã lâu rồi mình không viết blog, nhưng phải chờ đợi đến một thời điểm chính muồi thì mình mới có thể viết được một bài tâm huyết với chất lượng cao. Hi vọng thông qua bài viết này, các bạn có hứng thú với Thị Giác Máy Tính (TGMT - hoặc CV - Computer Vision) sẽ có thêm động lực và biết được thêm nhiều thông tin về một hướng nghiên cứu khá hấp dẫn này.

CONTINUE READING

The programming exercise is from TAoCP, Vol3, 5.1.1-6: Design an algorithm that computes the inversion table $b_1, b_2 \cdots b_n$ corresponding to a given permutation $a_1a_2 \cdots a_n$ of ${1, 2, \cdots , n}$, where the running time is essentially proportional to $n\ log n$ on typical computers. I was really stuck on the solution Knuth given in the book. The author also mentioned another approach which actually is a modifination of merge sort.

CONTINUE READING

Một chút thông tin về cuốn sách trước khi mình đánh giá: Thông tin Mô tả Tiêu đề Selected Papers on Computer Science [Amazon] Tác giả Donald Knuth Số trang 276 Đây là một trong những cuốn sách dễ tiếp cận nhất của Don Knuth. Tuy được xuất bản cách đây khá lâu (gần 20 năm về trước), nhưng đây là một trong những cuốn sách kinh điển dẫn nhập về KHMT.

CONTINUE READING

Cấu trúc Hàng Đợi Ưu Tiên (priority queues) là một trong những CTDL kinh điển trong KHMT với rất nhiều ứng dụng khác nhau, có thể kể đến như: CTDL quan trọng cho các thuật toán khác như Dijkstra’s Algorithms. Numerical Optimization: một vài thuật toán optimization (đặc biệt là iterative optimization) phải chọn ra những biểu thức có sai số làm tròn cao nhất/thấp nhất để thực thi.

CONTINUE READING

Trước tiên là ôn lại một chút về quicksort. Dưới đây là bản implement (đơn giản) của thuật toán nổi tiếng này: // quicksort implement template<typename T> int partition(vector<T>& a, int lo, int hi) { int i = lo, j = hi; T v = a[lo]; while (true) { while (a[++i]<=v) if (i == hi) break; while (v<=a[--j]) if (j == lo) break; if (i >= j) break; swap(a[i], a[j]); } swap(a[lo], a[j]); return j; } template<typename T> void quicksort(vector<T>& a, int lo, int hi) { if (lo >= hi-1) return; int j = partition(a, lo, hi); quicksort(a, lo, j); quicksort(a, j+1, hi); } Phân tích Độ phức tạp được đánh giá thông qua hàm:

CONTINUE READING

Projects

Hashing in content-based image retrieval

My main research at SUTD

Urban-Area Scene-Based Localization

The on-device large-scale image based localization integrating compact image retrieval and 2D-3D matching.

Selected Publications

Selective Deep Convolutional Features for Image Retrieval

PDF Code Project

Simultaneous Feature Aggregating and Hashing for Large-scale Image Search

PDF Code Slides

Enhance Feature Discrimination for Unsupervised Hashing

PDF Code

Recent Publications

More Publications

Selective Deep Convolutional Features for Image Retrieval

PDF Code Project

Simultaneous Feature Aggregating and Hashing for Large-scale Image Search

PDF Code Slides