Labels

Linux (6) OpenCV (4) Deep Learning (3) MATLAB (3) Mac OS X (3) Windows (2) C# (1) Node JS (1)

2018年11月11日 星期日

My Top 10 Foods in Taiwan

One of my father's British friends once told me: "We English people eat to live, but you Taiwanese people live to eat!". THIS IS SO TRUE! Here I would like to share with you my top 10 foods of Taiwan. I will make this list longer if I have more time.

1.

Bubble Tea

Bubble tea should be called pearl milk tea to match its original name in Chinese. There are many bubble tea shops in Taiwan, but the best is Ten Ren tea. Unlike other shops, Ten Ren also sells high quality tea. Their bubble tea is more expensive but taste different with better tea leaves. They also have several restaurant in Shi-Lin that use tea as ingredient in their dishes, which are tasty and special.
The secret of best bubble tea is customization. You can decide how much sugar or ice you want. I usually have 1/3 sugar and less ice.

2.

Din Tai Fung

My favorite restaurant! Din Tai Fung is best known for steamed dumplings, but I want to say that all foods they sold are good. My favorite steamed dumpling is the one with shrimp and loofah. The spicy dumpling and fried rice are also very delicious. Din Tai Feng can be found in the SOGO department stores. It's hard to miss it with so many chefs making dumpling in the window.


3.

Beef Noodle

One of the most famous foods in Taiwan! There is even a beef noodle festival in Taiwan. For beef noodle I prefer local restaurants like Lin Dong Fang Beef Noodle or tomato beef noodle in my neighborhood (Tian-Mu). The beef noodle of Din Tai Fung is also good.

4.

Mango Shaved Ice

Mango is a super juicy and sweet fruit native to South Asia. Mango and shaved ice (sometimes with ice cream) are a perfect combination. However the best season to have mango is summer.

5.

Fried Chicken & Squid

Fried chicken and squid are most popular food in night market. Taiwanese fried chicken is also called popcorn chicken. It consists of bite-sized pieces of chicken, coated and fried with flour and seasoning mixture. But I don't eat it very often because it is high-fat and deep-fried. It's so delicious and so evil.

6.

Braised Pork Rice

Braised pork rice, or minced pork rice, is a Taiwanese traditional food. This is a steamed rice with ground pork marinated and boiled in soy sauce served on top. Formosa Chang serves very good braised pork rice. Their chicken rice is also worth a try.

7.

Pineapple Cake

Pineapple cake is a pastry containing butter, flour, egg, sugar, and pineapple or white gourd jam. It is sweet and best have it with tea.

8.

Oyster Omelet

This is one of the most common dish in night market. Fresh oyster fried with eggs is yummy, and I like to add sweet-spicy sauce.

9.

Pig-blood Rice Cake

Don't be scared by its name. Pig-blood rice cake is made by rice but use pig's or duck's blood for seasoning. Okay, maybe it still sounds scared, but it tastes like a rice cake. Once being selected as weirdest food in the world by Virtual Tourist, pig-blood cake is a good choice for adventurous tourists.

10.

Stinky Tofu

Best choice for adventurous tourists. It smells stinky but tastes very good. Honestly speaking, I seldom eat it. Stinky tofu is also popular in China.


Reference

  1. CNN Travel - 40 of the best Taiwanese foods and drinks
  2. CNN Travel - You voted: World's best food is in ..
  3. Travel Taipei - Must Eat in Taiwan!
  4. https://tw.blog.voicetube.com/archives/9125

2017年9月21日 星期四

Use Deep Learning Tool inside Unreal

In this post I would like to introduce how to setup Unreal as a deep reinforcement learning environment. Before going on please get your deep learning environment ready and install TensorFlow or Theano. Our environment is based on the amazing Unreal Python Engine created by 20tab:
https://github.com/20tab/UnrealEnginePython

I've successfully installed on Ubuntu, Windows and Mac. Installing on Windows & Mac are relatively easy so let's start with Ubuntu first.

Ubuntu

1. Installing Unreal

First you need to register an account on EpicGame website. For linux we need to compile from source code.  Make sure you get granted for downloading from github then execute the commands below:

# Get authorized on github by EpicGames first. 
# Can use -b to specify UE4 version. Ex: git clone -b 4.16
git clone https://github.com/EpicGames/UnrealEngine.git
cd UnrealEngine
./Setup.sh
./GenerateProjectFiles.sh
make
#....wait for 30+ mins....
# Run UE4 editor
./Engine/Binaries/Linux/UE4Editor

1.1 Unreal Terminology

There are some must-know terminologies of Unreal:

LEVEL: A gaming region, saved as (.umap) so it's also called Map ACTOR: Any movable object in a level
PAWN: Subclass of Actor controlled by player or AI (NPC) BLUEPRINT: Visual game scripting system

More terminologies can be found here.

1.2 Learning Unreal Basics

To create your own test environment you need to learn how to manipulate objects (actors) and write scripts. There are lots of tutorials on Unreal website and I suggest to read the following first:

a. Level Designer Quick Start



b. Unreal Engine 4 Tutorial for Beginners: Getting Started


c. Blueprints Quick Start Guide


NOTE: Unfortunately there is no Epic Games launcher for Linux, so we need to download free examples using Windows or Mac and then upload to Linux.

2. Installing UnrealPythonEngine

Now we need to install the UnrealPythonEngine plugin from
https://github.com/20tab/UnrealEnginePython
By default Unreal will load and compile any plugs in /Plugins folder under the project directory. Note we need to create C++ project, not Blueprint:



The installation steps are listed as below:
  • Create a new Unreal C++ project and close the editor once the project is fully started
  • Go to the just created project directory and create the Plugins folder
  • move to the Plugins folder and clone the UnrealPythonEngine plugin:
  • git clone https://github.com/20tab/UnrealEnginePython
Before we re-open Unreal project and compile the plugin, we need to setup Python engine first.

2.1 Choose Python 2.7 or Python 3.5+

The default Python engine is 3.6. To change it we need to edit the build file:
Plugins/UnrealEnginePython/Source/UnrealEnginePython/UnrealEnginePython.Build.cs

And add your Python installation folder into pythonHome as below:
public class UnrealEnginePython : ModuleRules
{ 
  
    // leave this string as empty for triggering auto-discovery of python installations...
    private string pythonHome = "/usr/include/python2.7;/usr/lib/x86_64-linux-gnu/libpython2.7.so";
    ......

Reopen the project and start compiling the plugin, a "not compatible" warning message may be shown:

Ignore the warning and click "No", and you will see the next dialog

Click "Yes"

*Compiling error for UnrealPythonEngine

If you are using clang++-3.9 and older Unreal version (like 4.15) to compile UnrealPythonEngine, you will encounter the following error:

ThirdParty/FBX/2016.1.1/include/fbxsdk/core/fbxproperty.h:1242:70: error: binding dereferenced null pointer to reference has undefined behavior [-Werror,-Wnull-dereference] return StaticInit(pObject, pName, FbxGetDataTypeFromEnum(FbxTypeOf(*((FbxReference*)0))), pValue, pForceSet, pFlags); 

To fix it, change your clang++ version to 3.8 or lower:
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-3.8 100
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-3.8 100


2.2 Open Python Console

Now we are ready to run some Python scripts. Make sure your deep learning tool (TensorFlow or Theano) is accessiable for the UE4Editor. If VirtualEnv is used, activate the environment before running UE4, for example:
/data/UnrealEngine-4.17$ source ~/theano/bin/activate
(theano) /data/UnrealEngine-4.17$ ./Engine/Binaries/Linux/UE4Editor

Open the Unreal project and select Window -> Developer Tool -> Python Console

Import your Deep Learning framework, then you are ready to go!

Windows & Mac

For Windows and Mac, just download the binary releases from Github of UnrealPythonEngine and unzip it in your project's Plugins folder. Make sure you download the right Python version.

2017年9月6日 星期三

Top Conferences in Data Mining, Computer Vision and Artificial Intelligence

Note: The conferences are sorted by deadline.

Data Mining

Short Name
Full Name
Deadline
When
KDD
Knowledge Discovery and Data Mining
February
August
ASONAM
Advances in Social Networks Analysis and Mining
March
July/Aug.
ECML + PKDD
The European Conference on Machine Learning & Principles and Practice of Knowledge Discovery in Databases
April
September
CIKM
IEEE International Conference on Information and Knowledge Management
May
November
ICDM
IEEE International Conference on Data Mining
June
November
WSDM
Web Search and Data Mining
August
February
ICDE
International Conference on Data Engineering
Sep./Oct.
April
SDM
SIAM International Conference on Data Mining
October
May
PAKDD
The Pacific-Asia Conference on Knowledge Discovery and Data Mining
Oct./Nov.
May

Computer Vision & Image Processing

Short Name
Full Name
Deadline
When
ICIP
International Conference on Image Processing
January
September
SIGGRAPH
Computer Graphics and Interactive Techniques
January
August
ICPR
International Conference on Pattern Recognition #
January
August
ECCV
European Conference on Computer Vision#
February
September
ICCV
International Conference on Computer Vision*
March
October
ACM MM
ACM International Conference on Multimedia
April
October
BMVC
British Machine Vision Conference
May
September
CVPR
Computer Vision and Pattern Recognition
November
June/July
ICME
International Conference on Multimedia and Expo
December
July
# Every even year  * Every odd year

Machine Learning & Artificial Intelligence

Short Name
Full Name
Deadline
When
IJCAI
International Joint Conference on Artificial Intelligence
February
August
ICML
International Conference on Machine Learning
February
August
NIPS
Neural Information Processing Systems Conference
May
December
AAAI
American Association for AI National Conference
September
February
ICLR
International Conference on Leanring Representations
October
April/May

Robotics

Short Name
Full Name
Deadline
When
IROS
International Conference on Intelligent Robots & Systems
March
September
ICRA
International Conference on Robotics and Automation
September
May

2017年5月2日 星期二

Deep Learning Reading List (Tools, Tutorials, Papers)

Deep Learning Fundamentals
R. Pieters
Python for image understanding link
A good talk for beginners
Chih-Fan Hsu, Chun-Ming Chang
手把手的深度學習實務
(slides) (labs) (github)
Great training course in Chinese, made by Data Insights Research Lab in Academia Sinica
Neural networks and deep learnings
A very comprehensive tutorial written by Michael Nielsen
Christopher Olah
A good blog to visualize NN
Geoffrey E. Hinton et al.
The breakthrough paper that introduces restricted Boltzmann machines and stacked deep-belief networks
Y LeCun,
Y Bengio,
G Hinton
Deep Learning, Nature, 2015
Review paper written by fathers of neural networks
Deep Learning Tools
TensorFlow
Open source library developed by Google with C++ core and Python interface
Keras
A wrapper for Theano and Tensorflow, very user friendly.
Theano
DL library for Python developed by Université de Montréal
Caffe2
A fast and scalable C++ DL framework for visual recognition. Based on Caffe from UC Berkely
Deep Reinforcement Learning
Tambet Matiisen
Great introduction. Algorithms are implemented with Neon
Arhtur Juliani

Open AI Gym
A framework let your RL algorithms play video games
Mnih, et al.
Human-Level Control through Deep Reinforcement Learning, Nature, 2015
Deep Q-network (DQN) by Google Deep Mind (code)
David Sliver, Aja Huang et al.
Paper of AlphaGo, period.
DL for Image Classification and Object Detection
An image database with 14 million images organized according to the WordNet hierarchy
Hold the Large Scale Visual Recognition Challenge (ILSVRC) challenges every year
Alex Krizhevsky
Ilya Sutskever
Geoffrey E. Hinton
First successful deep network for image classification, aka AlexNet

Karen Simonyan, Andrew Zisserman
Winner of ILSVRC 2014
C. Szegedy et al.
Google Research
Going Deeper with Convolutions, CVPR 2015
GoogLeNet
K. He et al.
Microsoft Research
CVPR 2016 best paper and winner of ILSVRC 2015, aka ResNet
DL for Image Annotations
A. Karpathy
Li Fei-Fei
Deep Visual-Semantic Alignments for Generating Image Descriptions, CVPR 2015

Justin Johnson
Andrej Karpathy
Li Fei-Fei
DenseCap: Fully Convolutional Localization Networks for Dense Captio, CVPR 2016

DL for Video Applications (CVPR 2016)
Ting Yao et al.
Highlight Detection with Pairwise Deep Ranking for First-Person Video Summarization [pdf

Michael Cgyli et al.
Video2GIF: Automatic Generation of Animated GIFs from Video [pdf
B. Tekin et al.
Direct Prediction of 3D Body Poses from Motion Compensated Sequences [pdf

Bingbing Li. et al.
Progressively Parsing Interactional Objects for Fine Grained Action Detection [pdf

Pingbo Pan et al.
Hierarchical Recurrent Neural Encoder for Video Representation With Application to Captioning [pdf

Zheng Shou, Dongang Wang, Shih-Fu Chang
Temporal Action Localization in Untrimmed Videos via Multi-stage CNNs [pdf

Ziwei Liu et al.
DeepFashion: Powering Robust Clothes Recognition and Retrieval With Rich Annotations [pdf]

Xiaofan Zhang et al.
Embedding Label Structures for Fine-Grained Feature Representation [pdf]

Other Video Applications (CVPR 2016)
Jingjing Meng et al.
From Keyframes to Key Objects:
Video Summarization by Representative Object Proposal Selection [pdf


K.  Grauman et al.
Summary Transfer: Exemplar-based Subset Selection for Video Summarization [pdf

Feng Zhou, Yuanqing Lin
Fine-Grained Image Classification by Exploring Bipartite-Graph Labels [pdf]