Home | History | Annotate | Download | only in src

Lines Matching refs:hmm

195 //    Purpose: The function allocates memory for 1-dimensional HMM  
198 // Parameters: hmm - addres of pointer to CvEHMM structure
199 // state_number - number of states in HMM
200 // num_mix - number of gaussian mixtures in HMM states
214 CvEHMM* hmm;
218 /* allocate memory for hmm */
219 hmm = (CvEHMM*)icvAlloc( sizeof(CvEHMM) );
222 hmm->num_states = state_number;
223 hmm->level = 0;
252 hmm->u.state = all_states;
254 hmm->transP = icvCreateMatrix_32f( hmm->num_states, hmm->num_states );
255 hmm->obsProb = NULL;
258 *this_hmm = hmm;
264 CvEHMM* hmm = phmm[0];
265 icvDeleteMatrix( hmm->transP );
267 if (hmm->obsProb != NULL)
269 int* tmp = ((int*)(hmm->obsProb)) - 3;
273 icvFree( &(hmm->u.state->mu) );
274 icvFree( &(hmm->u.state) );
282 CvStatus icvUniform1DSegm( Cv1DObsInfo* obs_info, CvEHMM* hmm )
289 if ( !obs_info || !hmm ) return CV_NULLPTR_ERR;
291 first_state = hmm->u.state;
296 int state = (i * hmm->num_states)/obs_info->obs_x;
306 // Purpose: The function implements the mixture segmentation of the states of the embedded HMM
307 // Context: used with the Viterbi training of the embedded HMM
312 // hmm - pointer to HMM structure
318 CvStatus icvInit1DMixSegm(Cv1DObsInfo** obs_info_array, int num_img, CvEHMM* hmm)
333 int total = hmm->num_states;
334 CvEHMMState* first_state = hmm->u.state;
527 // hmm - hmm
532 CvStatus icvEstimate1DObsProb(CvImgObsInfo* obs_info, CvEHMM* hmm )
542 /*for( j = 0; j < hmm->num_states; j++ )
544 total_states += hmm->u.ehmm[j].num_states;
546 total_states = hmm->num_states;
548 if ( hmm->obsProb == NULL )
552 obs_info->obs_y * hmm->num_states * sizeof( CvMatr32f) */);
558 hmm->obsProb = (float**) (buffer + 3);
565 int* total= (int*)(((int*)(hmm->obsProb)) - 3);
567 obs_info->obs_y * hmm->num_states * sizeof( CvMatr32f(float*) )*/ );
573 int* buffer = ((int*)(hmm->obsProb)) - 3;
580 hmm->obsProb = (float**)(buffer + 3);
587 int* obsx = ((int*)(hmm->obsProb)) - 1;
588 //int* obsy = ((int*)(hmm->obsProb)) - 2;
601 float** tmp = hmm->obsProb;
605 /* for( i = 0; i < hmm->num_states; i++ )
607 hmm->u.ehmm[i].obsProb = tmp;
614 /* for( i = 0; i < hmm->num_states; i++ )
616 CvEHMM* ehmm = &( hmm->u.ehmm[i] );
625 hmm->obsProb = tmp;
644 //for( i = 0; i < hmm->num_states; i++ )
646 // CvEHMM* ehmm = &(hmm->u.ehmm[i]);
647 CvEHMMState* state = hmm->u.state;
650 for( j = 0; j < hmm->num_states; j++ )
655 max_mix *= hmm->num_states;
674 //for( i = 0; i < hmm->num_states; i++ )
676 // CvEHMM* ehmm = &(hmm->u.ehmm[i]);
677 CvEHMMState* state = hmm->u.state;
680 int n_states = hmm->num_states;
683 for( j = 0; j < hmm->num_states; j++ )
695 float* log_mp = max_mix > 1 ? log_mix_prob : (float*)(hmm->obsProb);
768 res = icvbLog_64f32f( mix_prob, (float*)(hmm->obsProb),//[j],
782 /* for( i = 0; i < hmm->num_states; i++ )
784 CvEHMM* ehmm = &(hmm->u.ehmm[i]);
824 // hmm - pointer to HMM structure
831 CvEHMM* hmm )
840 icvSetZero_32f( hmm->transP, hmm->num_states, hmm->num_states );
860 int transP_size = hmm->num_states;
863 hmm->transP[ state * transP_size + nextstate] += 1;
869 for( i = 0; i < hmm->num_states; i++)
873 for( j = 0; j < hmm->num_states; j++)
875 total += hmm->transP[i * hmm->num_states + j];
881 for( j = 0; j < hmm->num_states; j++)
883 hmm->transP[i * hmm->num_states + j] =
884 hmm->transP[i * hmm->num_states + j] ?
885 (float)log( hmm->transP[i * hmm->num_states + j] * inv_total ) : -BIG_FLT;
895 // Purpose: The function implements the mixture segmentation of the states of the embedded HMM
896 // Context: used with the Viterbi training of the embedded HMM
901 // hmm
906 CvStatus icv1DMixSegmL2(CvImgObsInfo** obs_info_array, int num_img, CvEHMM* hmm )
910 CvEHMMState* state = hmm->u.state;
950 // hmm - HMM
957 float icvViterbi(Cv1DObsInfo* obs_info, CvEHMM* hmm)
962 //CvEHMMState* first_state = hmm->u.state;
965 /*CvMatr32f superB = picvCreateMatrix_32f(hmm->num_states, obs_info->obs_x );*/
970 /* perform Viterbi segmentation (process 1D HMM) */
971 icvViterbiSegmentation( hmm->num_states, obs_info->obs_x,
972 hmm->transP, (float*)(hmm->obsProb), 0,
993 CvStatus icvEstimate1DHMMStateParams(CvImgObsInfo** obs_info_array, int num_img, CvEHMM* hmm)
1006 CvEHMMState* first_state = hmm->u.state;
1010 total+= hmm->num_states;