TEM vision software
m |
m |
||
Line 15: | Line 15: | ||
The software runs under GNU/Linux and it makes use of [http://damien.douxchamps.net/ieee1394/libdc1394/ Damien Douxchamps' libdc1394] to access the camera and [ftp://lx10.tx.ncsu.edu/pub/Linux/drivers/ Warren Jasper's PCI-DIO24 driver] to access the PCI-card which interfaces with the SPM controller. | The software runs under GNU/Linux and it makes use of [http://damien.douxchamps.net/ieee1394/libdc1394/ Damien Douxchamps' libdc1394] to access the camera and [ftp://lx10.tx.ncsu.edu/pub/Linux/drivers/ Warren Jasper's PCI-DIO24 driver] to access the PCI-card which interfaces with the SPM controller. | ||
− | The software was implemented in [http://www.ruby-lang.org/ Ruby] using [http://rubyforge.org/projects/korundum/ Qt4-QtRuby], [[HornetsEye]], and a custom Ruby-extension to access the SPM controller via the PCI-DIO24 card. [http://www.ruby-doc.org/core/classes/DRb.html Distributed Ruby | + | The software was implemented in [http://www.ruby-lang.org/ Ruby] using [http://rubyforge.org/projects/korundum/ Qt4-QtRuby], [[HornetsEye]], and a custom Ruby-extension to access the SPM controller via the PCI-DIO24 card. [http://www.ruby-doc.org/core/classes/DRb.html Distributed Ruby] and multiple processes were used to work around the problem that Ruby-1.8 does not offer native threads. |
+ | |||
+ | The vision algorithms are configured using a separate program and the configuration is saved in a file using [http://www.ruby-doc.org/core/classes/Marshal.html Ruby marshalling]. A plugin-based architecture, which accepts plugins for recognition and tracking, was implemented which allows one to select and configure '''Normalised Cross-Correlation''', '''Lucas-Kanade tracking''', or '''Connected Component Analysis'''. | ||
==Future Work== | ==Future Work== | ||
Possible future work is | Possible future work is | ||
+ | * port to Ruby-1.9 which has native threads | ||
* integrate serial-port interface of JEOL TEM | * integrate serial-port interface of JEOL TEM | ||
Line 34: | Line 37: | ||
** [http://www.ruby-lang.org/ Ruby] | ** [http://www.ruby-lang.org/ Ruby] | ||
** [ftp://lx10.tx.ncsu.edu/pub/Linux/drivers/ Warren Jasper's PCI-DIO24 driver] | ** [ftp://lx10.tx.ncsu.edu/pub/Linux/drivers/ Warren Jasper's PCI-DIO24 driver] | ||
+ | ** [http://rubyforge.org/projects/korundum/ Qt4-QtRuby] | ||
* Related publications | * Related publications | ||
** Jung-Me Park, C. G. Looney, Hui-Chuan Chen: [http://cs.ua.edu/research/TechnicalReports/TR-2000-04.pdf Fast connected component labeling algorithm using a divide and conquer technique], 15th International Conference on Computers and their Applications, March, 2000, pp. 373-6 | ** Jung-Me Park, C. G. Looney, Hui-Chuan Chen: [http://cs.ua.edu/research/TechnicalReports/TR-2000-04.pdf Fast connected component labeling algorithm using a divide and conquer technique], 15th International Conference on Computers and their Applications, March, 2000, pp. 373-6 |
Revision as of 19:17, 26 June 2009
|
As part of the Nanorobotics project a TEM vision software was developed. The software makes use of the TVIPS FastScan-F114 which is an IIDC/DCAM-compatible firewire camera. The nano-indenter is controlled by a Nanomagnetics SPM controller (the old version of the controller can be accessed with a PCI-DIO24 card).
The software runs under GNU/Linux and it makes use of Damien Douxchamps' libdc1394 to access the camera and Warren Jasper's PCI-DIO24 driver to access the PCI-card which interfaces with the SPM controller.
The software was implemented in Ruby using Qt4-QtRuby, HornetsEye, and a custom Ruby-extension to access the SPM controller via the PCI-DIO24 card. Distributed Ruby and multiple processes were used to work around the problem that Ruby-1.8 does not offer native threads.
The vision algorithms are configured using a separate program and the configuration is saved in a file using Ruby marshalling. A plugin-based architecture, which accepts plugins for recognition and tracking, was implemented which allows one to select and configure Normalised Cross-Correlation, Lucas-Kanade tracking, or Connected Component Analysis.
Future Work
Possible future work is
- port to Ruby-1.9 which has native threads
- integrate serial-port interface of JEOL TEM
See Also
External Links
- Hardware
TVIPS FastScan-F114 IIDC/DCAM-compatible firewire camera
- Software
- Related publications
- Jung-Me Park, C. G. Looney, Hui-Chuan Chen: Fast connected component labeling algorithm using a divide and conquer technique, 15th International Conference on Computers and their Applications, March, 2000, pp. 373-6
- J. P. Lewis: Fast Normalized Cross-Correlation, Industrial Light & Magic
- S. Baker, I. Matthews: Lucas-Kanade 20 Years On: A Unifying Framework, International Journal of Computer Vision, Vol. 56, No. 3, March, 2004, pp. 221-255.