DEVELOPMENT OF ALGORITHM FOR PANORAMA GENERATION, AND IMAGE SEGMENTATION FROM STILLS OF UNDERVEHICLE INSPECTION Balaji Ramadoss December,06,2002
Main Objective of this course Design segmentation algorithm to identify the objects in the data collected from the under vehicle inspector Develop various algorithm in MATLAB for segmenting the image and then convert the most efficient algorithm to stand alone application
Algorithms developed Segmentation approach applying global threshold and morphology functions in MATLAB Segmentation approach applying edge detection and morphology functions in MATLAB Segmentation approach applying edge detection and Radon transformation
Segmentation-Algorithm 1 Operation Low pass filtering Thresholding Reduce noises with OPEN operation Create Marker image Multiply the marker image with the original image Low Pass filtering Threshold Open operation Create Marker image Impose Marker in original Segmented image Original image
Segmentation-Algorithm 1 (contd) GUI developed using MATLAB that can read high resolution image in any of the following following format.bmp or.tiff High resolution image of size 2016x3040x3 of under vehicle inspection is read by the software Size of the image is reduced into 480x720 using bilinear operation to make the image display exactly within the axes of the GUI
Segmentation algorithm2-direct Original image is edge detected using canny method Edge detected image is used as marker and imposed on the original image to segment the object Color selection to identify the edges in the GUI is provided Canny Edge Detection Create Marker image Impose Marker in original Segmented image Original image Block diagram of the algorithm Resultant image
Segmentation algorithm2-Dilation operation Edge Detected image is dilated and the used as marker to segment the image Details of the small objects are missing after segmentation Canny Edge Detection Dilate operation Create Marker image Impose Marker in original Segmented image Original image Block diagram of the algorithm Resultant image
Segmentation algorithm2-Open operation operation Image after canny edge detection is OPEN and the imposed in the original image Better than the edge dilation operation with less loss of information Canny Edge Detection Open operation Create Marker image Impose Marker in original Segmented image Original image Block diagram of the algorithm Resultant image
Improvisation of Segmentation details – applying radon transform Though Canny edge detection gave good results in forming the edges of the objects,there are noises in the form unlinked lines These broken lines seen within objects due to intensity variation are studied by applying Radon transform Radon transform is similar to Hough transform Curves for each pixel of line are generated and the point of intersection of peak values are determined
Why Radon Transformation? Goal of this project in future is to extract all the objects that are captured from the image captured by the under vehicle robot For this edge details has to be perfectly reconstructed in segmentation to improve the results of labeling the objects based on chain codes
Implementation of Radon transform Radon transform is applied to Under vehicle edge detected image to connect the lines that are edge detected with canny filter Peak values in Radon transform correspond to lines Result of applying Radon transform the under vehicle image
Some results of applying Radon Transformation Edge detected image Radon transform of the image Lines detected with Radon transform with threshold >115
Some results of applying Radon Transform Lines detected with radon transform superimposed in the original image
Drawbacks of detecting lines with radon transform Linear feature detection for line segments shorter than the image dimension is difficult Reason for this drawback is that the radon transform integrates along a 1-pixel line straight line through the entire image Start and end points of the edges in the objects are not distinguishable after applying radon transform Any edges that are identified with radon transform will stretch through out the image Any objects that have any straight edges are not detected and are disturbed with the lines detected with the local objects
Steps taken to solve the problems faced after applying radon transform Read the following two papers on application of radon transform Localized Radon transform for ship wake detection in SAR imagery- Anthony C.Copeland,Gopaln Ravichandran,Mohan M.Trivedi Localized Radon transform-based detection of linear features in noisy images- Anthony C.Copeland,Gopaln Ravichandran,Mohan M.Trivedi
Abstract from the two papers Drawbacks in identifying linear features in image is discussed in both these papers Radon transform is applied locally to each feature for each value of theta The variance is calculated for each strips along one direction and threshold is determined Morphology operation is done on the transformed image so that each transform constitutes a portion of the image All the identified features are mapped
Development of a new algorithm from the above abstract Read image Canny filter Line detection Localized Radon transformation Check connectivit y in endpoints Mapping Lines detected image Segmented Image
Some results with localized radon transformation by applying manually Localized image Radon transformation of this image
Some results by localizing the radon transform Original edge detected image Line connected using Radon transformBottom portion of the image and applied radon transform
Some results by localizing the radon transform If radon transform is locally applied to the above edge detected image as shown then the line detected is as above
Algorithm and the flow chart to locate discontinuity 3X3 unit matrix moves on the edge pixels and sets the value of 1.0 if there any discontinuity and sets value 0.5 if it is closed loop Edge detected Image Graylevel 0.5 Check connectivit y in endpoints Gray level 1.0
Discontinuity detected (pixel value 1.0)in the original image in the program output Functions developed Pixelcontinuitydown() Pixelcontinuityup()- This function is C compatible and can be included in a C program Problems faced with these functions Pixels direction was always focused on clockwise direction which caused error in detecting discontinuity Starting coordinate for radon transform
Magnified image of discontinuity detected Starting coordinate for radon transform
Algorithm to connect the pixel at discontinuity Algorithm identify discontinuity Apply radon transformation Dilate the radon results Create marker image for localization Apply localization results to Disconnectivity algorithm results Apply radon to the results of localization Connect the disconnected pixel in edge detected image Check pixel connectivity in endpoints
Image before applied with new (drawfinalradon) algorithm
Functions developed to implement this new algorithm Drawfinalradon(dir,Emodel,Etest,E2,oldi,oldj) Coordinates with pixel connectivity in the localized disconnectivity pixels and the radon transform edge detected image Outputs the pixel in the disconnected localized area Pixel direction This function provides the direction of the localization and removes the unwanted area in the localization Localized image Radon image Localized mask
Some important modification in the stand alone functions developed Pixelcontinuitydown() Pixelcontinuityup()- Direction Check pixel() Labels the pixels with desired gray level if found disconnected(no matlab inbuilt functions) Detects discontinuity Disadvantages Assumption is made to move in clockwise direction Logic fails if the traverse of pixel edge is in anticlockwise direction Advantages Overcomes all the above problems and no errors
Some important functions developed for this edge detecting algorithm and their results Labeldiscontinuity() Stand alone function
Some important functions developed for this edge detecting algorithm and their results Radon transform line Localized lineLocalized image Detect line at dis continuity with radon transform Localize the radon detected line Dilate the radon results Create marker image for localization and get the image Apply once again radon transformation to get close results
Some important functions developed for this edge detecting algorithm and their results Radon draw()- to draw line corresponding to the radon transformation Red radon() to localize the radon line detected Decide line to detect and draw the line in image based on the results of the radon image
Results Algorithm for discontinuity and edge detection is developed using MATLAB The functions are to be further tested to improve the edge detection All the functions were written with C compatible codes and have to be implemented in C for stand alone application The following problems are completely solved in last week Discontinuity detection Localized feature extraction in image
Future Work Codes will be executed in C++ Edge detected image will applied with the developed technique in algorithm 2 After segmenting the objects from the image the objects will be extracted applying cluster technique Developed VC++ GUI to segment the objects using clustering technique and the above codes will be implement in this GUI to extract the objects from the image