Projects from year 1998 until NOW ... - Developed by AHYEEK

Thursday, August 27, 2015

Image Understanding (IU)

Throughout these years, the growth of digital media collections has been accelerating, particularly in still images. These artifacts represent huge quantity of heterogeneous information and it is not easy to be managed. Thus, there is a need for the development of human-centered tools for an efficient access and retrieval of them. The capability of current imaging systems have just focused on low-level visual context processing of the images and still limited to describe the high-level semantic conceptualization. The aim of this research is to investigate methods to enable a machine to understand the content of an image at the conceptual level.

Module: Multiple Features-Object Conceptualization

The aim of this research is to investigate existing pixel level processing methods that can be used in isolation or in combination to extract various types of low-level information (i.e. Image Feature Descriptors) from an image. Also, the research is to investigate a suitable data model that will effectively link these feature descriptors to a specific object. The proposed data model is encouraged to be designed as in a form of ontology, thus to leverage the nature intelligent underlying by the class hierarchy. Diagram shows the feature conceptualization process performed by the Proof-of-Concept (POC) system.

Module: Multiple Entities Recognition via Case-base Analysis

The aim of this research is to investigate and develop a suitable technique to map the conceptualized feature descriptors in previous described module to a specific content in image. Feature-object Ontology will be served as a 'brain' for recognizing and identifying entities in the image. Multiple parts of an input image are being accessed for feature extraction process. The extracted features are used as source to compare with the pre-trained features. Diagram shows the POC simulation of multiple parts of image accessing process and the case-based object recognition process.

Module: Object Spatial Relationship Extraction

The aim of this module is to conduct research to formulate suitable techniques for constructing spatial relationship among the objects in an image. Spatial information between objects in an image plays an important role in image understanding process. For example, if there are cars on top of a road, and there are people stands besides the cars, the image might carry the meaning of certain specific event, such as road accident or car exhibition. With this spatial information, in combination with other additional prior knowledge retrieved, we hope to enable a machine to achieve certain level of understanding on an image.

Module: Semantic Image Interpreter via Conceptual Graph

The aim of this module is to investigate and develop techniques to interpret an image by constructing a conceptual graph as the representation of the image content. All of the entities detected from the previous described modules are able to be linked together and represented in a form graph. Investigation effort continue to develop graph processing techniques such as combine, delete and project to further enrich these constructed graphs. The graph data can also be served as an input to another system for further analysis in order to obtain useful knowledge.

Wednesday, November 28, 2012

Workshop on Computer Vision by Prof. E. Trucco

10 - 11 Septermber 2012
Fundamental of Computer Vision with Medical and Video application

Knowledge Technology Week on 3rd - 7th Sep 2012

Demo chair for the Semantic Technology and Knowledge Engineering, year 2012

Mi-Image Understanding System. In Artificial Intelligence Demo

Sunday, November 25, 2012

Training Certificates 2012

Autonomy Software - IDOL Server Essential 10 
21st - 24th October 2012 

Fundamentals of Computer Vision With Medical and Video Application
10th - 11th September 2012 

Presentation Alive, 04th - 05th July 2012, Kuala Lumpur

Sunday, November 27, 2011

Training Certificates 2011

Completion of 3 days MyTriz Workshop
Workshop organized by The Malaysia TRIZ Innovation Association together with The International TRIZ Association (MATRIZ)

Machine Learning Workshop

Performance Unleashed
Speaker profile:

Training: Advance Video Analytic and Emerging Video Surveillance

Knowledge Technology Week (KTW) 2011, 18th -22nd July

Sponsorship chair for the Third Malaysian Joint Conference on Artificial Intelligence (MJCAI) and Semantic Technology and Knowledge Engineering (STAKE), year 2011

Paper publication presentation -
S. Y. Tan, C.C. Kiu, Dickson Lukose. Automatic Question Generator Evaluating In 3rd Semantic Technology and Knowledge Engineering (STAKE 2011), UNITEN Putrajaya, Malaysia, July 18-22, 2011

Demo chair for the Artificial Intelligent Demo 2011

Monday, January 10, 2011

Training Certificates 2010

Introduction Graph Theory Course

UML Design Expert - A Thorough Introduction for Analysis and Design (Phase 2)

Tuesday, August 10, 2010

Knowledge Technology Week (Conference & Exhibition)

Event : Knowledge Technology Week (Conference & Exhibition)
Date :
26 July – 30 July 2010
Time :
9am – 5pm
Venue :
Damai Beach Resort, Kuching, Sarawak
Responsibility: Demo presenter

Saturday, August 07, 2010

Excellent Scientist Awarded 2005

“Saintis Cemerlang 2005” (Excellent Scientist) awarded by Ministry of Higher Education, 23 August 2005

Wednesday, June 30, 2010

What is Generics in C#?

1. Generics allow you to define type-safe data structures, without committing to actual data types.
2. Result higher quality of code by reuse data processing algorithm without duplicating type-specific code.
3. Generics allow you to define type-safe classes without compromising type safety, performance, or productivity.

.Net 1.1 way of implementing Stack data structure providing Push() and Pop() methods.
For general purpose of Stack, it used to store instances of various type. Old way using Object-based stack, which is amorphous object. This is because Object is canonical .NET base type, it able to hold any type of items.

1. Performance in boxing and unboxing value types when pushing and popping process.
2. Type safety. Compiler allow anything cast from Object type. Hence, programmer losing compile-time type safety. Cast wrongly will raise an invalid cast exception at run time.

Hence, to solve this, old way is to create type-specific Stack data structure. For Interger, using InsStack, for String, use StringStack.

Writing type-specific data structures is a tedious, repetitive, and error-prone task.
In addition, there is no way to foresee the use of unknown or yet-undefined future types, so you have to keep an Object-based data structure as well.

Sample Code Download :

Hashtable Vs Arraylist

1. A Collection of Items containing a Single Item.
2. Can Add any datatype value, every item in arraylist is treated as object.
3. It will dynamically expand and contract when you add/remove elements to it.

1. Collection of key,value pairs.
2. Key Can be any data-type.
3. Key Cannot be null reference, but value can be.
4. Each element is a key/value pair stored in a DictionaryEntry object.

Retrieving by key in Hashtable is faster than retrieving in Arraylist.

Sample Code Download :

Tuesday, June 29, 2010

Event Vs Delegate

An event is a message sent by an object to signal the occurrence of an action. The object that raises the event is called the event sender. The object that captures the event and responds to it is called the event receiver. In event communication, the event sender class does not know which object or method will receive (handle) the events it raises. What is needed is an intermediary (or pointer-like mechanism) between the source and the receiver. The .NET Framework defines a special type (Delegate) that provides the functionality of a function pointer.

A delegate is a class that can hold a reference to a method.
A delegate class has a signature, and it can hold references only to methods that match its signature. Thus equivalent to a type-safe function pointer or a callback.

Sample Code Download :

Different Between Abstract Method And Virtual Method

Abstract method vs Virtual methods

Abstract method: When a class contains an abstract method, that class must be declared as abstract. The abstract method has no implementation and thus, classes that derive from that abstract class, must provide an implementation for this abstract method.

A subclass which derives from an abstract class and fails to implement abstract methods will fail to compile.

Virtual method: A class can have a virtual method. The virtual method has an implementation. When you inherit from a class that has a virtual method, you can override the virtual method and provide additional logic, or replace the logic with your own implementation.

Virtual methods allow subclasses to provide their own implementation of that method using the override keyword.

A member defined as virtual must be implemented in the base class, but may be optionally overridden in the derived lass if different behavior is required.

Sample Code Download :

What Is The Different Between Abstract Class And Interface

Abstract Base Vs Interface

Abstract class:
An Abstract class without any implementation just looks like an Interface; however there are lot of differences than similarities between an Abstract class and an Interface.

  • We cannot make instance of abstract class.
  • An abstract class is only to be sub-classed (inherited from).
  • In other words, it only allows other classes to inherit from it but cannot be instantiated.
The advantage is that it enforces certain hierarchies for all the subclasses. In simple words, t is a kind of contract that forces all the subclasses to carry on the same hierarchies or standards.

Interface concept:
An interface is not a class.
An interface has no implementation; it only has the signature.
It just the definition of the methods without the body.

Similarity between Abstract class and Interface:
They act as a contract that is used to define hierarchies for all their subclasses.

A class can implement more than one interface but can only inherit from one abstract class.
Since C# doesn't support multiple inheritance, interfaces are used to implement multiple inheritance.

Sample Code Download:

Monday, June 28, 2010

Interview Question: Will Code In Finally Block Being Executed When There Is A 'Return' In Try Block

Will Code In Finally Block Being Executed When There Is A 'Return' In Try Block?

Finally block allow us to specify code that's guaranteed to execute no matter what kind of exception a thread throws.

Sample Code:

Thursday, January 07, 2010

Robotic Eye Inside Pipe (REIP) - View Into Unreachable Place

Home-grown small pipeline inspection system to inspect pipeline interiors welding quality for pharmaceutical industry and food industry, diameter range from 12 mm to 75 mm.

Non-destructive video inspection is required from recent government law enforcement to above industry to increase safety standard and environmental contamination control on above industry facility pipe line and sewage system.

Video evident of the interiors of pipelines for welding defects such as surface discontinuity, corrosion fatigue cracking, creep of dissimilar weld joints and piping conditions such as leakage and blockage is done yearly by pipe line inspection service’s consultant company.

* This project was awarded with entrepreneurship (CIP) grant by CRADLE in year 2009

Wednesday, January 06, 2010

TE 8000 – Wafer Stencil Inspection System

This project is continue research and enhanced from ASIS PCB, Advance Stencil Inspection System in order to achieve new capabilities:
- System able to inspect 1 million apertures, with 1 time scan 8x8 inch wafer disk, by 3200dpi resolution and its accuracy achieve 7um
- System able to inspect 1 million apertures, with 1 time scan 12x12 inch wafer disk, by 2400dpi, resolution and its accuracy achieve 11um

* This project was awarded with entrepreneurship (CIP) grant by CRADLE in year 2008
Research & Developed Prototype In Inspecting Wafer Stencil (Die by Die Inspection) Demonstration:

Green color spot show dust / stain appear on wafer stencil, red color spot shows missing apeature detected.

Due to the wafer stencil surface is dirty, system detect a lot of stain from the image captured. Further research and implementation on hardware and software are required to reduce the errors detection.

Visualization Result On Wafer Map After Inspection Process Completed:

ASIS PCB, Advance Stencil Inspection System

Automatic human eye independent QC tool for stencil inspection

Check missing, extra, position offset and area defective aperture

ASIS™ is a fully integrated, stand-alone measurement and inspection workstation for stencil and screen fabrication or other machined, etched or laser cut eform operations.

ASIS™ uses a PC Windows based software package integrated with a high-resolution, calibrated, A3 size flatbed scanner. This combination allows inspection of both stencils and screens for accuracy and the ability to inspect and measure 100% for absence/presence and correct size of apertures.

* Awarded with pre-seed entrepreneurship grant by MDEC.
Product sold to Hakko Sdn. Bhd., and Ocular Sdn. Bhd.

SZIS – Super Zoom Inspection System

SZIS is a super zoom microscope system with 50X to 500X zooming capability to inspect wire bond post quality.

Electronic Machine Inspection and Verification System

Software and hardware design in optical inspection technology effectively prevent human error in product labeling process in a manufacturing system. This technology consists of camera, video card, computer and image processing software to replace human eye and mental comparison process(brain), which is known for not reliable and error prone for repetitive task.

This proprietary solution prevent human mistake happen at the source, verify the source input data in text form against with machine first output unit. Therefore, it totally eliminate possibility of catastrophic product scrap cost, quality and reputation loss. Other competitors system provide solution in the area of “verify ‘first output actual unit’ against subsequence unit”. This comparison method only good for solving mix device and product segregation after mass production.

* This project was awarded with entrepreneurship (CIP) grant by CRADLE in year 2007

Hardware setup environment:

Software interface screen shots:

Saturday, November 15, 2008

Genetic Algorithm (GA) In Solving Multi Variants Problem Implemented In Ms. NET C# (Multivariate Genetic Algorithm Solution)

Year: 2008
Programming Language & Tools: Microsoft .NET C#
Source code / Request for customization:
Application For Test: Download

Optimization Using Genetic Algorithm In C#
This is a Multivariate Analysis and Solver using Genetic Algorithm methodology. Simulation application implemented in Ms. Net C#.

Assume we have certain number of farm lands (in area). Each land contain 2 types of insect. Assume we have certain number of fertilizer to be chosen to use where each of them having different cost (per area) and killing effectiveness (in %) for each type of insects.

By using Genetic Algorithm and Dynamic Programing technique, we want to find out, which fertilizer used for each land that satisfied minimum insects of number and also minimum cost of fertilizer.

Imagine if you have 50 farms and 30 types of fertilizer to choose. In order for you to obtain a promising solution by examining all possible combination, it will take years in the computational power we having now.

Using GA in solving multi-variant problem like this need a suitable data structure to represent the problem space. Representation of chromosome and DNA (element in each chromosome) need to be designed in a way to combine different farm lands with fertilizer. By randomly pair the farm land with the fertilizer, checking the fitness value in each chromosome, performing GA operation process to obtain a best fitness value chromosome. Then, the solution set can be obtain by retrieving the information in DNA from the chromosome.

You can go to: GA Project Coding Service for requesting the methodology document in details.

For understand another example of GA in solving shortest path problem, refer to:
Genetic Algorithm (GA) In Solving Vehicle Routing Problem

or access Genetic Algorithm (GA) In Solving Vehicle Routing Software Package

Genetic Algorithm process:
1. Perform a number of loops according to the generation.
2. For each loop:
a. Depend on the chance, perform Cross-Over operation.
b. Depend on the chance, Perform Overlapping operation.
c. Depend on the chance, perform Mutation operation.
d. Perform sort operation on the chromosome list.

Friday, May 23, 2008

Product Working In A Bioinformatics Company

Genseq is a start up company incorporated in Jersey (C.I.), which has been founded by two successful entrepreneurs to offer affordable genome sequencing and bioinformatics analysis of the resulting data. The first human genome sequencing was successfully complete in 2005 by the Human Genome Project, a US$3 billion public funded program and by Celera genomics, a private company at a cost of over US$300m. For more information, refer:

Product developed:
How is it useful?
# Connect with your relatives to record and track an accurate and up-to-date family health history.
# Find out which diseases and health problems run in your family.
# Discover if you or your family members are at risk of certain diseases - even one's that might otherwise not be considered by your doctor.
# Discover if you or your family members need a specific diagnostic test.

Latest technology developed:
Provided a plug in engine, that able to provide the system in your own site.
This is the example:

Friday, June 29, 2007

Training Certificates 2006 - 2009

Business Plan Clinic by CRADLE Investment Program

Step Up Program For Entrepreneurs

Upgrading Web Development Skill From ASP to Microsoft ASP.NET

Getting Start With .NET

Certificate of Completion For "Introduction to UML"

Training Certificate For "Programming With C#"

Certificate Of Participation For "Architecting Entreprise Software"

Microsoft Certificate Of Achievement For Advance Windows Forms Technologies

Workshop For Microsoft Visual Studio 2005

Thursday, June 21, 2007

Image Processing Research Journey Started ...

Year: 16 Jun 2007
Programming Language: Microsoft .NET C#
Source Code: Email author
Simulation Application For Test: Download

I always tell my friends that "Image Processing (IP)" technology can be translate as "The Ability For Machine To view". I considered it as 1 of the A.I knowledge in computer science and really interesting.

Below are some of the examples I did using C#. Below is the first example, which the example is research on 'Thresholding' technique (see Image [a]). In order to thresholding a color image, I translated the color code for the color image into a gray scale image first (see Image [b]) before doing any further filtering operation. The third example is doing the invert filtering (see Image [c]).

(Image [a] - Threshold Image Filtering Example)

(Image [b] - Gray Scale Image Filtering Example)

(Image [c] - Invert Image Filtering Example)